Hadoop存在的问题

在睡觉前偶然看看Google Analytics的统计,有几个人是通过搜索引擎搜索“Hadoop存在的问题”来访问了这里。
我也试着搜了一下,我的上一篇写Hadoop的内容在Google出现第10页,baidu第4页。

既然这个问题都让人翻了这么多页来寻找答案,我就开始反问自己了。

Hadoop存在什么问题?

思考了最近两年的过程,我认为Hadoop存在的问题都不是技术问题:

1. API不稳定

Hadoop从0.17开始,到目前我用到0.21,每次升级都让我苦不堪言。
HDFS和MapReduce的向前兼容做的不错,但是过多的外围程序跟进了这个漩涡,例如Hive,HBase。
由于这些外围程序的不跟进,每次升级都会损失一些追随者。

当然0.xx版本,本来就没有承诺API是稳定的。只是至今也都没有1.0的规划,很可能将来要出到0.99。
没有盼头的一直跟随更新,实在是很辛苦。

2. 宣传和普及的不够

在刚接触了Hadoop几个月的时候,有幸与zshao@apache座谈过几个小时。
我想这可能是我能一直坚持着跟进Hadoop开发的一个动力。

宣传的少会让谨慎的人不敢用,普及的多会让激进的人滥用。
我自认为在技术选型上是个保守派,所以关于应用HBase的各种讨论,我都投的反对票。

我认为Hadoop及其衍生品,根源上是批处理系统,高容错,高延时。
这种系统我会用来做异步的计算,但是一定不能染指用户操作行为。

应该加强宣传,让大家知道Hadoop不是万能的,它最擅长的是并行处理。

3. 小众

整个MapReduce这个概念是基于Google的一篇论文,本是解决PB级别搜索索引问题开发的架构。

随着发展,虽然功能已经抽象的不仅限于索引,但是量级的优势还是一直存在。
如果数据量在100TB以下,实在是没有必要用Hadoop。

可是有100TB数据的组织,真的不多。大部分的试用者,没有办法从应用Hadoop的过程里获得边际收益。