Shell脚本学习笔记(Beginning Linux Programming 4th Chapter 2)

1、使用Shell编程、开发脚本的原因:简单易学,所有的Linux都装备,无需安装。

2、Shell由一系列小的脚本组成,并且可以根据需求进行任意组合、替换,很好地诠释了Linux的核心特性“Reuse”(代码重用)。

3、Shell是用户和Linux系统之间的一层应用层交互接口。

4、经典的Shell版本:

  • sh:Unix的Shell脚本,Bourne开发。
  • csh, tcsh, zsh,:Berkeley Unix的Shell,Bill Joy开发。
  • ksh[......]

    继续阅读

[转载]MapReduce的模式、算法和用例

转载自:http://yangguan.org/mapreduce-patterns-algorithms-and-use-cases/

翻译自:http://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/

在这篇文章里总结了几种网上或者论文中常见的MapReduce模式和算法,并系统化的解释了这些技术的不同之处。所有描述性的文字和代码都使用了标准hadoop的MapReduce模型,包括Mappers, Red[......]

继续阅读

[转]ZooKeeper典型应用场景一览

转载自:http://rdc.taobao.com/team/jm/archives/1232

这篇文章写的非常贴近实际,比官方好!

ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。

值得注意的是,ZK并非天生就是为这些应用[......]

继续阅读

Shell编程中的数组定义、遍历

数组定义:
arr=(1 2 3 4 5) # 注意是用空格分开,不是逗号!!
数组定义法2:
array
array[0]="a"
array[1]="b"
array[2]="c"
获取数组的length(数组中有几个元素):
${#array[@]}
遍历(For循环法):
for var in ${ arr[@] };
do
echo $var
done
遍历(带数组下标):
for i in "${!arr[@]}"; do
print[......]

继续阅读