弈者举棋不定,不胜其耦。——左传 ⋅ 襄公
应用场景
Hadoop并不适用所有类型的应用程序:
如果数据分片是互相关联的,或者需要进行跨数据分片的计算,就很难有效运行在Hadoop上。
比如说,想象下你有多支股票,这些股票在不同时间点有不同的价格,现在需要计算这些股票间的关联度,比如你想预测某只股票什么时候会下跌(虽然在国内不靠谱,但是我还是容易想到AR模型),如果不同块中存储了不同的股票,你必须计算不同块中股票的关联性。
Hadoop MR不适合于迭代计算。有两个原因:一是每次迭代从HDFS中获取数据的开销,尽管可以通过分布式的缓存来分摊,另一个是Hadoop中缺乏长期存活的MR作业,通常在MR作业外,必须执行终止条件检查,以便判断计算是否完成,所以Hadoop在每次迭代中,都需要初始化新的MR作业。 ——初始化开销可能会超过迭