我们可以使用Hadoop MapReduce进行实时数据处理吗?

时间:2018-12-18 13:06:24

标签: hadoop hive mapreduce hdfs

Hadoop map-reduce及其通常用于批处理的回声系统(例如Hive ..)。但是我想知道我们可以使用hadoop MapReduce进行实时数据处理示例的任何方式,例如实时结果,实时推文。

如果不是,实时数据处理或分析的替代方案是什么?

3 个答案:

答案 0 :(得分:1)

带有Map-Reduce的实时应用 让我们尝试使用Hadoop实施实时应用。要了解这种情况,请考虑使用温度传感器。假设传感器继续工作,我们将继续获取新的读数。因此数据永远不会停止。

我们不应该等待数据完成,因为它永远不会发生。然后,也许我们应该继续定期进行分析(例如每小时一次)。我们可以每小时运行一次Spark,并获取最后一小时的数据。

如果我们需要每小时进行最后24小时分析怎么办?我们是否应该每小时重新处理最近24小时的数据?也许我们可以计算小时数据,将其存储起来,然后使用它们来计算24小时数据。它将起作用,但是我必须编写代码来完成它。

我们的问题才刚刚开始。让我们迭代一些使我们的问题复杂化的要求。

  • 如果温度传感器放置在核电站内并且 我们的代码会创建警报。一小时后创建警报 可能不是处理它的最佳方法。我们能否在1内收到警报 第二?
  • 如果要在小时边界处计算读数怎么办? 数据需要几秒钟才能到达存储。现在你不能 在您的边界开始工作,您需要观察磁盘并 当数据到达小时边界时触发作业。
  • 好吧,您可以快速运行Hadoop。作业会在1秒内完成吗? 我们可以将数据写入磁盘,读取数据,对其进行处理以及 产生结果,并与其他23小时的数据合并在一起 第二?现在事情开始变得紧张起来。
  • 您开始感到摩擦的原因是因为您没有 为作业使用正确的工具。您正在使用一字螺丝刀 当您有六角扳手时。

流处理 解决此类问题的正确工具称为“流处理”。这里的“流”是指数据流。数据序列将继续出现。 “流处理”可以监视数据的传入,处理以及在几毫秒内对其做出响应。

以下是我们希望超越批处理(Hadoop / Spark),我们的舒适范围并考虑流处理的原因。

  • 某些数据自然是无休止的事件流。去做 批处理,您需要将其存储,有时会切断 处理数据。那你得做下一批再担心 关于跨多个批次进行汇总。相反,流式传输 优雅自然地处理永无休止的数据流。您可以 有条件,请关注多个重点级别(将对此进行讨论 当我们进入Windows时),还可以轻松查看来自多个 同时播放。
  • 通过流式传输,您可以更快地响应事件。你可以生产 收到事件(更新)的毫秒数内的结果。用 批处理通常需要几分钟。
  • 流处理自然适合时间序列数据并进行检测 随时间变化的模式。例如,如果您尝试检测 网络会话在永无止境的流中的长度(这是一个示例 尝试检测序列),很难做到这一点 某些会话将分为两批。流处理 可以轻松处理。如果您退后一步考虑, 最连续的数据序列是时间序列数据。例如,几乎 所有物联网数据都是时间序列数据。因此,使用 很自然的编程模型。
  • 批处理可建立数据并尝试同时处理它们 流进来的处理数据,从而分散处理 随着时间的推移。因此,流处理可以使用更少的硬件 而不是批处理。
  • 有时数据非常庞大,甚至无法存储。 流处理可让您处理大型火马风格的数据并 仅保留有用的位。
  • 最后,有很多可用的流数据(例如,客户 交易,活动,网站访问),它们的增长速度会更快 物联网用例(各种传感器)。流媒体要多得多 自然模型来思考和编程这些用例。

答案 1 :(得分:0)

在HDP 3.1中,引入了Hive-Kafka集成以处理实时数据。有关更多信息,请参阅文档:documentation

您可以Apache Hive-Kafka Integration处理事件数据的OLAP查询,并且可以将Hive和Kafka与Druid一起使用。

答案 2 :(得分:0)

在处理大量数据并对其进行批处理的情况下,Hadoop / Spark会发光,但是当您的用例围绕实时分析需求发展时,则 Kafka Steams druid 是考虑的好选择。

这里是了解类似用例的良好参考链接: https://www.youtube.com/watch?v=3NEQV5mjKfY

Hortonworks还提供了HDF堆栈(https://hortonworks.com/products/data-platforms/hdf/),它最适合与动态数据相关的用例。

Kafka和Druid文档是了解这两种技术的强项的好地方。这是他们的文档链接:

Kafka:https://kafka.apache.org/documentation/streams/
德鲁伊:http://druid.io/docs/latest/design/index.html#when-to-use-druid