Hadoop概念学习系列之Hadoop Streaming(二十三)
Streaming的原理: 是用Java实现一个包装用户程序的MapReduce程序,该程序负责调用MapReduce Java接口获取key/value对输入,创建一个新的进程启动包装的用户程序,将数据通过管道传递给包装的用户程序处理,然后调用MapReduce Java接口将用户程序的输出切分成key/value对输出。 Streaming优点: 1)开发效率高,便于移植只要按照标准输入输出格式进行编程,就可以满足hadoop要求。因此单机程序稍加改动就可以在集群上进行使用。 同样便于测试只要按照 cat input | mapper | sort | reducer > output 进行单机测试即可。 如果单机测试通过,大多数情况是可以在集群上成功运行的,只要控制好内存就好了。 2)提高程序效率。有些程序对内存要求较高,如果用java控制内存毕竟不如C/C++。 Streaming不足: 1)Hadoop Streaming默认只能处理文本数据,无法直接对二进制数据进行处理 2)Streaming中的mapper和reducer默认只能向标准输出写数据,不能...