为什么Hadoop不是一个实时平台

时间:2013-10-28 05:36:37

标签: hadoop real-time

我刚刚开始学习Hadoop并经历了一些网站,我经常发现

“Hadoop不是实时平台”即使在SO中也

我搞砸了这个,我真的无法理解它。任何人都可以帮助我解释一下这个吗?

全部谢谢

1 个答案:

答案 0 :(得分:23)

Hadoop最初设计用于批处理。这意味着,一次输入一个大数据集,处理它,并写一个大输出。 MapReduce的概念是针对批处理而不是实时的。但说实话,这只是Hadoop开始时的情况,现在你有很多机会以更实时的方式使用Hadoop。

首先,我认为通过实时定义您的意思非常重要。可能是您对流处理感兴趣,或者您可能希望对数据运行实时返回结果的查询。

对于Hadoop上的流处理,原生Hadoop不会为您提供此类功能,但您可以轻松地将其他一些项目与Hadoop集成:

  • Storm-YARN允许您通过YARN在Hadoop集群上使用Storm。
  • Spark与HDFS集成,允许您实时处理流数据。

对于实时查询,还有一些使用Hadoop的项目:

    来自Cloudera的
  • Impala使用HDFS但完全绕过了MapReduce,因为否则会有太多的开销。
  • Apache Drill是另一个与Hadoop集成以提供实时查询功能的项目。
  • Stinger项目旨在让Hive本身更加实时。

可能还有其他项目可以放入“实时制作Hadoop”列表中,但这些项目是最知名的。

正如您所看到的,Hadoop越来越朝着实时方向发展,即使它不是为此而设计的,您也有很多机会将其扩展到实时目的。