首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以使用Hadoop MapReduce进行实时数据处理吗?

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

Stack Overflow用户
提问于 2018-12-18 13:06:24
回答 2查看 4.3K关注 0票数 2

Hadoop地图-减少和它的回声系统(如蜂巢..)我们通常用于批处理。但是我想知道是否有任何方法可以使用hadoop MapReduce作为实时数据处理的例子,比如实时结果,实时tweet。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-18 21:23:07

实时应用程序与地图减少,让我们尝试实现一个实时应用程序使用Hadoop.为了理解这个场景,让我们考虑一个温度传感器。假设传感器继续工作,我们将继续获取新的读数。所以数据永远不会停止。

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

如果我们每小时都需要最后24小时的分析呢?我们应该每小时重新处理过去24小时的数据吗?也许我们可以计算每小时的数据,存储它,并使用它们来计算24小时的数据。它可以工作,但我必须编写代码才能做到这一点。

我们的问题才刚刚开始。让我们重复几个使我们的问题复杂化的需求。

  • 如果温度传感器放置在核电站内,我们的代码会产生警报怎么办?一个小时后创建警报可能不是处理它的最佳方法。我们能在1秒内收到警报吗?
  • 如果你希望在数据到达存储区所需的几秒钟时间内,在小时边界上计算读数,该怎么办?现在无法在边界启动作业,需要监视磁盘并在数据到达小时边界时触发作业。
  • 你可以跑得很快。工作将在1秒内完成吗?我们能否将数据写入磁盘,读取数据,处理数据并生成结果,并在一秒钟内与其他23个小时的数据重新组合?现在情况开始紧张起来了。
  • 你开始感到摩擦的原因是你没有为工作使用合适的工具。当你有一个艾伦扳手螺丝时,你正在使用平螺丝刀.

流处理这类问题的正确工具称为“流处理”。这里的“流”是指数据流。将继续出现的数据序列。“流处理”可以在数据输入时观察它们,处理它们,并在毫秒内对它们作出响应。

下面是我们想要超越批处理( Hadoop/ Spark)的原因,我们的舒适区域,并考虑流处理。

  • 一些数据自然是一种无休止的事件流。要进行批处理,您需要存储它,在某个时候切断并处理数据。然后,您必须做下一批,然后担心聚合跨多个批。相反,流处理永无止境的数据流是优雅而自然的。您可以有条件,查看多个级别的焦点(当我们到达windows时将讨论这个问题),也可以很容易地同时查看来自多个流的数据。
  • 通过流,您可以更快地响应事件。您可以在接收事件(更新)后的毫秒内生成结果。批处理通常需要几分钟。
  • 流处理自然适合时间序列数据和检测模式随着时间的推移。例如,如果您试图在一个永无止境的流中检测web会话的长度(这是尝试检测序列的一个例子),那么使用批处理是非常困难的,因为某些会话将分为两个批。流处理可以轻松地处理这一问题。如果退一步考虑,最连续的数据序列是时间序列数据。例如,几乎所有的IoT数据都是时间序列数据。因此,使用自然适合的编程模型是有意义的。
  • 批处理允许数据建立起来,并尝试在流处理数据时立即对它们进行处理,从而将处理扩展到一段时间。因此,与批处理相比,流处理可以处理更少的硬件。
  • 有时数据是巨大的,甚至不可能存储它。流处理允许您处理大型火马样式的数据,并且只保留有用的位。
  • 最后,有很多可用的流数据(例如,客户事务、活动、网站访问),使用IoT用例(所有类型的传感器),它们会增长得更快。流是一个更自然的模型来思考和编程那些用例。
票数 4
EN

Stack Overflow用户

发布于 2018-12-18 17:30:09

在HDP 3.1中,引入了Hive集成来处理实时数据.有关更多信息,请参见docs:Apache Kafka集成

您可以使用将Apache添加到Hadoop集群中来处理对事件数据的OLAP查询,还可以在Druid中使用Hive和Kafka。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53833704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档