关闭

Hadoop的Streaming学习

429人阅读 评论(0) 收藏 举报

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

......  



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:77873次
    • 积分:972
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:21篇
    • 译文:1篇
    • 评论:2条
    最新评论