我刚开始学习 Hadoop 并浏览了一些网站,我经常发现
“Hadoop 不是实时平台”即使在 SO 中也是如此
我对此感到困惑,我真的无法理解。任何人都可以帮我解释一下吗?
谢谢大家
Hadoop 最初是为批处理而设计的。这意味着,一次在输入中获取一个大型数据集,对其进行处理,然后编写一个大型输出。MapReduce 的概念是面向批处理而非实时的。但老实说,这只是 Hadoop 开始时的情况,现在您有很多机会以更实时的方式使用 Hadoop。
首先,我认为定义实时的含义很重要。可能是您对流处理感兴趣,也可能是您希望对数据运行查询以实时返回结果。
对于 Hadoop 上的流处理,原生 Hadoop 不会为您提供这种能力,但您可以轻松地将其他一些项目与 Hadoop 集成:
对于实时查询,还有几个使用 Hadoop 的项目:
可能还有其他项目适合“使 Hadoop 实时”列表,但这些是最知名的。
正如您所看到的,Hadoop 越来越朝着实时方向发展,即使它不是为此而设计的,您也有很多机会将其扩展为实时目的。