hadoop的streaming学习小结

参考;hadoop实战

hadoop程序都是java写的,不过hadoop也支持用其他语言来编程,需要用到Streaming的通用API。主要用于编写简单、短小得到mapreduce程序,他可以通过脚本语言,开发更加便捷,并能够充分利用非java库。streaming使用unix中的流与程序进行交互,从stdin输入数据,输出到stdout。数据必须为文本且每行被视为一个记录。streaming的整个数据流就像管道,数据先流过mapper,然后再reducer中排序,最后输出。streaming不同于storm,storm是实时流处理框架。stream只是hadoop里常用作数据处理的,支持多语言的API.

bin/hadoop jar~/hadoop-2.7.3/share/hadoop/tools/lib/hadoop-streaming-2.7.3.jar  -input /user/root/input/apat63_99 -output /user/root/output-file ~/AttributeCount.py -mapper 'AttributeCount.py 1' -reducer aggregater

1 输入输出路径写的是文件夹的地址,这里都是写的hdfs的绝对路径地址

2 file指定的是文件的绝对地址

3 mapper指定我们使用的map函数

4 reducer 指定使用的reduce函数

5 mapper函数为自定义脚本文件

#! /usr/bin/env python
import sys
index = int(sys.argv[1])
for line in sys.stdin:
	fields=line.split(",")
	print "LongValueSum:"+fields[index]+"\t"+"1"


         这里用到一个LongValueSum是一个运算函数。另外还有ValueHistogram函数,对于每个键,它输出数字来代表不同的含义。1唯一值个数2最小个数3中值个数4最大个数5平均个数6标准方差

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值