我们可以使用Hadoop MapReduce 进行实时数据处理吗?
Can we use Hadoop MapReduce for real-time data process?
Hadoop map-reduce 和它的 echo-systems(比如 Hive..)我们通常用于批处理。但我想知道有什么方法可以将 hadoop MapReduce 用于实时数据处理示例,如实时结果、实时推文。
如果不是,实时数据处理或分析的替代方案是什么?
在 HDP 3.1 中,引入了 Hive-Kafka 集成来处理实时数据。有关详细信息,请参阅文档:Apache Hive-Kafka Integration
您可以add Apache Druid to a Hadoop cluster处理事件数据的 OLAP 查询,您可以将 Hive 和 Kafka 与 Druid 一起使用。
带 Map-Reduce 的实时应用程序
让我们尝试使用 Hadoop 实现一个实时应用程序。为了理解这个场景,让我们考虑一个温度传感器。假设传感器继续工作,我们将不断获得新的读数。所以数据永远不会停止。
我们不应该等待数据完成,因为它永远不会发生。那么也许我们应该继续定期(例如每小时)进行分析。我们可以 运行 每小时 Spark 并获取最后一小时的数据。
如果我们每小时都需要最近 24 小时的分析怎么办?我们应该每小时重新处理最近 24 小时的数据吗?也许我们可以计算每小时的数据,存储它,并用它们来计算 24 小时的数据。它会工作,但我将不得不编写代码来完成它。
我们的问题才刚刚开始。让我们重复一些使问题复杂化的要求。
- 如果将温度传感器放置在核电站内会怎样?
我们的代码创建警报。一小时后创建警报
可能不是处理它的最佳方法。我们能在 1 秒内收到警报吗
第二个?
- 如果你想在小时边界计算读数怎么办?
数据到达存储需要几秒钟。现在你不能
在你的边界开始工作,你需要看磁盘和
当数据到达小时边界时触发作业。
- 嗯,你可以 运行 Hadoop 很快。作业会在 1 秒内完成吗?
我们可以将数据写入磁盘,读取数据,处理它,然后
产生结果,并与其他 23 小时的数据重新组合在一个
第二?现在事情开始变得紧张了。
- 你开始感到摩擦的原因是因为你不
为工作使用正确的工具。您正在使用一字螺丝刀
当你有内六角扳手螺丝时。
流处理
解决此类问题的正确工具称为“流处理”。这里的“Stream”指的是数据流。将继续到来的数据序列。 “流处理”可以在数据传入时对其进行观察、处理并在毫秒内做出响应。
以下是我们想要超越批处理 (Hadoop/Spark) 这一我们的舒适区并考虑流处理的原因。
- 一些数据自然而然地以永无止境的事件流的形式出现。去做
批处理,你需要存储它,在某个时间切断并
处理数据。然后你必须做下一批然后担心
关于聚合多个批次。相比之下,流媒体
优雅自然地处理永无止境的数据流。你可以
有条件,看多层次的重点(会讨论这个
当我们到达 windows) 时,还可以轻松查看来自多个
同时流式传输。
- 通过流式传输,您可以更快地响应事件。你可以生产
接收事件(更新)后几毫秒内的结果。和
这通常需要几分钟的时间。
- 流处理天生适合时序数据和检测
随着时间的推移模式。例如,如果您试图检测
永无止境的流中网络会话的长度(这是一个例子
试图检测一个序列),很难用
批次,因为某些会话将分为两批。流处理
可以轻松处理这个。如果你退后一步考虑,
大多数连续数据序列是时间序列数据。例如,几乎
所有物联网数据都是时间序列数据。因此,使用
自然契合的编程模型。
- 批处理让数据积累并尝试同时处理它们
流式处理数据,因此分散处理
随着时间的推移。因此流处理可以使用更少的硬件
比批处理。
- 有时数据很大,甚至无法存储。
流处理让您处理大型火马式数据和
只保留有用的位。
- 最后,有很多可用的流数据(例如客户
交易、活动、网站访问),它们会增长得更快
与物联网用例(各种传感器)。流媒体是更多
思考和编程这些用例的自然模型。
Hadoop/Spark 在处理大量数据并对其进行批处理时表现出色,但当您的用例围绕实时分析需求展开时,那么 Kafka Steams 和 德鲁伊 是值得考虑的好选择。
这里是了解类似用例的好参考 link:
https://www.youtube.com/watch?v=3NEQV5mjKfY
Hortonworks 还提供 HDF 堆栈 (https://hortonworks.com/products/data-platforms/hdf/),它最适合与动态数据相关的用例。
Kafka 和 Druid 文档是了解这两种技术优势的好地方。这是他们的文档 links:
卡夫卡:https://kafka.apache.org/documentation/streams/
德鲁伊:http://druid.io/docs/latest/design/index.html#when-to-use-druid
Hadoop map-reduce 和它的 echo-systems(比如 Hive..)我们通常用于批处理。但我想知道有什么方法可以将 hadoop MapReduce 用于实时数据处理示例,如实时结果、实时推文。
如果不是,实时数据处理或分析的替代方案是什么?
在 HDP 3.1 中,引入了 Hive-Kafka 集成来处理实时数据。有关详细信息,请参阅文档:Apache Hive-Kafka Integration
您可以add Apache Druid to a Hadoop cluster处理事件数据的 OLAP 查询,您可以将 Hive 和 Kafka 与 Druid 一起使用。
带 Map-Reduce 的实时应用程序 让我们尝试使用 Hadoop 实现一个实时应用程序。为了理解这个场景,让我们考虑一个温度传感器。假设传感器继续工作,我们将不断获得新的读数。所以数据永远不会停止。
我们不应该等待数据完成,因为它永远不会发生。那么也许我们应该继续定期(例如每小时)进行分析。我们可以 运行 每小时 Spark 并获取最后一小时的数据。
如果我们每小时都需要最近 24 小时的分析怎么办?我们应该每小时重新处理最近 24 小时的数据吗?也许我们可以计算每小时的数据,存储它,并用它们来计算 24 小时的数据。它会工作,但我将不得不编写代码来完成它。
我们的问题才刚刚开始。让我们重复一些使问题复杂化的要求。
- 如果将温度传感器放置在核电站内会怎样? 我们的代码创建警报。一小时后创建警报 可能不是处理它的最佳方法。我们能在 1 秒内收到警报吗 第二个?
- 如果你想在小时边界计算读数怎么办? 数据到达存储需要几秒钟。现在你不能 在你的边界开始工作,你需要看磁盘和 当数据到达小时边界时触发作业。
- 嗯,你可以 运行 Hadoop 很快。作业会在 1 秒内完成吗? 我们可以将数据写入磁盘,读取数据,处理它,然后 产生结果,并与其他 23 小时的数据重新组合在一个 第二?现在事情开始变得紧张了。
- 你开始感到摩擦的原因是因为你不 为工作使用正确的工具。您正在使用一字螺丝刀 当你有内六角扳手螺丝时。
流处理 解决此类问题的正确工具称为“流处理”。这里的“Stream”指的是数据流。将继续到来的数据序列。 “流处理”可以在数据传入时对其进行观察、处理并在毫秒内做出响应。
以下是我们想要超越批处理 (Hadoop/Spark) 这一我们的舒适区并考虑流处理的原因。
- 一些数据自然而然地以永无止境的事件流的形式出现。去做 批处理,你需要存储它,在某个时间切断并 处理数据。然后你必须做下一批然后担心 关于聚合多个批次。相比之下,流媒体 优雅自然地处理永无止境的数据流。你可以 有条件,看多层次的重点(会讨论这个 当我们到达 windows) 时,还可以轻松查看来自多个 同时流式传输。
- 通过流式传输,您可以更快地响应事件。你可以生产 接收事件(更新)后几毫秒内的结果。和 这通常需要几分钟的时间。
- 流处理天生适合时序数据和检测 随着时间的推移模式。例如,如果您试图检测 永无止境的流中网络会话的长度(这是一个例子 试图检测一个序列),很难用 批次,因为某些会话将分为两批。流处理 可以轻松处理这个。如果你退后一步考虑, 大多数连续数据序列是时间序列数据。例如,几乎 所有物联网数据都是时间序列数据。因此,使用 自然契合的编程模型。
- 批处理让数据积累并尝试同时处理它们 流式处理数据,因此分散处理 随着时间的推移。因此流处理可以使用更少的硬件 比批处理。
- 有时数据很大,甚至无法存储。 流处理让您处理大型火马式数据和 只保留有用的位。
- 最后,有很多可用的流数据(例如客户 交易、活动、网站访问),它们会增长得更快 与物联网用例(各种传感器)。流媒体是更多 思考和编程这些用例的自然模型。
Hadoop/Spark 在处理大量数据并对其进行批处理时表现出色,但当您的用例围绕实时分析需求展开时,那么 Kafka Steams 和 德鲁伊 是值得考虑的好选择。
这里是了解类似用例的好参考 link: https://www.youtube.com/watch?v=3NEQV5mjKfY
Hortonworks 还提供 HDF 堆栈 (https://hortonworks.com/products/data-platforms/hdf/),它最适合与动态数据相关的用例。
Kafka 和 Druid 文档是了解这两种技术优势的好地方。这是他们的文档 links:
卡夫卡:https://kafka.apache.org/documentation/streams/
德鲁伊:http://druid.io/docs/latest/design/index.html#when-to-use-druid