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