streaming简介

streaming简介

  • 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编码转换成文本即可
    • 两次数据拷贝和解析(分割),带来一定的开销