Hadoop的Streaming学习

Haoop支持用其他语言来编程,需要用到名为Streaming的通用API。

Streaming主要用于编写简单,短小的MapReduce程序,可以通过脚本语言编程,开发更快捷,并充分利用非Java库。

HadoopStreaming使用Unix中的流与程序交互,从stdin输入数据,从stdout输出数据。实际上可以用任何命令作为mapper和reducer。数据流示意如下:

 cat [intput_file] | [mapper] | sort | [reducer] > [output_file]

使用如下命令:

 hadoop jar contrib/streaming/hadoop-streaming-0.20.203.0.jar  \

            >-input cite75_99.txt  \

           > -output output  \

           >-mapper 'cut -f 2 -d ,'  \

           >-reducer 'uniq'

第一行表示使用的StreamingAPI,位于图中位置得jar包中

-input-output参数用于设置输入输出文件或目录

-mapper-reducer通过引号中得参数进行设定,分别进行了截取第二列数据,

uniq进行了排序去重。

注意:每行是完全按照字母方式排序,因为Streaming完全采用文本方式处理数据,而不知道其他得数据类型。输出结果如下:

kqiao@ubuntu:~/hadoop-0.20.203.0$ hadoop fs -cat outputStreaming/part-00000 | head -10
"CITED"    
1    
10000    
100000    
1000006    
1000007    
1000011    
1000017    
1000026    
1000033

......  



阅读更多
个人分类: hadoop学习
上一篇用 Eclipse 平台进行 C/C++ 开发——CDT的使用
下一篇hadoop的Streaming学习(续)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭