尝试用c++和Hadoop streaming编写了一些程序,记录一下个人的使用体验
性能?
据网上某人做的测试,Hadoop streaming比用Java写的程序慢30%左右(具体连接忘了),当然这个数字不是绝对的,我也没有做过相关测试,但是还是能局部的反应出其性能状况
使用?
请看
这里、相关blog和文章还是比较多的,但是文章内容都差不多,下面写下个人使用后的观点,关于其中提到的问题,很可能是由于没有找到合理的解决方法,希望看过文章的朋友能提出
优势:
简单快速:使用Linux的标准输入输出,因此可以使用c/c++/python及各种Linux自带的命令。只需要了解基本的MapReduce过程即可使用(Map数据拆分、Reduce归并)
缺点:
无法控制数据类型:由于使用stdin和stdout,无法向后台MapReduce框架提供数据类型(个人推断所有的数据都作为字符串来处理的,这样在需要处理int等数据时会出现一些问题,比如排序)。
可选功能:streaming使用参数来配置各种选项,这样如果有的功能没有提供的话,该如何实现呢?比如我遇到需要对Int数据排序的问题,排序函数如何指定。目前尚没有找到答案
hadoop streaming适用于简单的MapReduce计算,当涉及到较复杂的需求时,个人认为还是使用Java会更加灵活。并且streaming方面的资料比较少。
阅读(2212) | 评论(0) | 转发(0) |