为啥Hadoop不是一个实时平台

Posted

技术标签:

【中文标题】为啥Hadoop不是一个实时平台【英文标题】:why Hadoop is not a real-time platform为什么Hadoop不是一个实时平台 【发布时间】:2013-10-28 05:36:36 【问题描述】:

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

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

我对此感到困惑,我真的无法理解。有谁能帮我解释一下吗?

谢谢大家

【问题讨论】:

【参考方案1】:

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 越来越朝着实时方向发展,即使它不是为此而设计的,您也有很多机会将其扩展用于实时目的。

【讨论】:

以上是关于为啥Hadoop不是一个实时平台的主要内容,如果未能解决你的问题,请参考以下文章

storm平台中啥是一系列

elasticsearch的实时搜索性能为啥比solr好

分布式实时Hadoop数据安全平台ApachEagle实践

如何实现交易数据到大数据平台的实时同步

如何对大数据量的数据实时抓取

Hadoop之Apache Kafka