为啥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不是一个实时平台的主要内容,如果未能解决你的问题,请参考以下文章