分类: 服务器与存储
2011-09-23 14:49:28
本文是作者阅读hadoop-0.20.203.0官方手册的学习笔记。
仅一个节点运行一个hadoop进程
这个例子展示了一个在Haddoop中实现的grep程序。
“jar hadoop-examples-*.jar grep”这部分可用看做是这个grep的路径。
input是输入目录;output是结果输出目录,这个目录grep会新建一个,因此output目录要求开始时不存在。
'dfs[a-z.]+' 是grep的匹配模式。
执行过程观察log,看到大量mapred.*内容,说明这个grep程序是基于mapreduce的。
为了与OS中的本地grep区别,同时便于描述,后面简称mr-grep
注意:input,output都是本地文件系统中的目录。
此时hadoop使用本地文件系统,可以换用/mnt/output,并使用本地系统命令查看。
可使用本地grep达到相同的目的。
配置在手册上,不再解释。
仅一个节点上运行多个hadoop进程,或者说是在一个节点模拟分布式运行。
这个例子展示了在模拟的分布式环境下mr-grep的运行情况。
“namenode –format”根据配置文件格式化文件系统,或者说初始化分布式文件系统。
“fs -put conf input”将本地文件目录conf中内容拷贝到前面所述的分布式文件系统的input目录。
“jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+”调用mr-grep在hadoop中运行,结果输出目录是分布式文件系统的output目录。
“fs -cat output/*”显示分布式文件系统output目录中文件的内容。
注意:hadoop这里的运行环境是模拟的分布式文件系统,实际与真实的分布式已经没有本质区别。
因此,不能直接使用本地命令访问到input和output。访问它们需要使用hadoop提供的fs命令,试试看“fs -ls”