Streaming简介
Streaming简介
Alexstreaming简介
- MapReduce和HDFS采用java实现,默认提供java编程接口
- Streaming框架允许任何程序语言实现的程序在Hadoop MapReduce中使用
- Streaming方便已有程序向Hadoop平台移植
streaming原理
- streaming有点
- 方便移植Hadoop平台,只需按照一定的规格从标准输入读取数据,向标准输出写数据就可以
- 原有单机程序稍加改动就可以在Hadoop平台进行分布式处理
- 容易单机调试
- cat input | mapper | sort | reducer > output
- 程序运行效率高
- 对于Cpu密集的计算,有些语言如C/C++编写的程序可能比用java编写的程序效率更高一些
- 便于平台进行资源控制
- Streaming框架中通过limit等方式可以灵活地限制应用程序使用的内存等资源
- Streaming局限
- 默认只能处理文本数据,如果要对二进制数据进行处理,比较好的办法是讲二进制的key和value进行base64编码转换成文本即可
- 两次数据拷贝和解析(分割),带来一定的开销