Simple Map Reduce at home - 羽的日志 - 网易博客
谈到Map Reduce,我第一个想到的就是Hadoop。不过说实话,Hadoop在配置上还是复杂了点,并且,个人感觉如果机器数量不是很多的情况下,使用Hadoop有点杀鸡用牛刀的感觉。
而本人又没有lxh师兄那么牛,可以自己写一个DFS,在DFS基础上写一个自己的MapReduce框架。所以只能去看看网络上有哪些可选件了。
抛砖引玉,列一下:
- Disco Nokia研究中心提供的Map Reduce框架,核心代码使用的是Erlang,job代码默认使用python。
- GridGain 是一个发展已久的基于Java的MapReduce框架,它现在已经到了2.1.1版本了,并且据说用户众多。
- FileMap 是一个基于文件和已有shell工具的map reduce小工具(可能无法称其为框架)
- BashReduce 顾名思义,是一个使用bash脚本实现的map reduce小工具,并且它只有一个bash脚本文件,惊人的小。使用awk,sort等工具来实现切块,任务分发,排序等系统任务。
经过一周的资料查阅和了解。我觉得可以把上述4个实现分为两种:大框架和小工具。
- Disco和GridGain都是比较完整的Map Reduce框架,需要一定的配置工作,只能在linux下部署,使用。
- 而FileMap和BashReduce,都是小工具,使用环境限制很小,只要提供了它们所使用的命令的环境,比如Windows系统中安装了Cygwin,或者下载了GNU的几个小工具的Win32实现,就能运行。
功能上讲,GridGain提供了很完善的文档,包括了视频教程,上手难度小,功能强大。而Disco,由于核心代码是Erlang实现的,加之文档不多,后期维护和debug的难度会很大。BashReduce非常的小巧,可用性很高,并且提供了几个C实现的mini工具来加速文件切分/排序等功能。FileMap相对于BashReduce稍微复杂一点,但是提供了更好的内部文件系统的支持。
总体评价,这个4个工具在DFS层面上,都无法达到Hadoop的层次(全局优化,对Map Reduce的支持和加速)。4个之内评价的话,我个人觉得,Disco和GridGain还是比较重量级的,由于配置上的复杂性和部署系统的限制,如果我要使用到它们,那么我宁愿选择部署一个hadoop系统了。FileMap和BashReduce都是可以直接copy下来使用的map reduce小工具,对于临时分布式需要处理大数据的场合非常适用。
考虑到Simple is Beauty,我投BashReduce一票。
不过简单的工具,特别是没有MapReduce Awared DFS支撑的小工具,它的加速比是很有限的。并且,增加机器会进一步降低加速比。所以,如果要进行较为大型的(超过10台计算机)的分布式计算,那么还是老老实实搭Hadoop吧~