Hadoop map-reduce及其回声系统(例如Hive ..)我们通常用于批处理。但是我想知道有什么方法可以使用hadoop MapReduce进行实时数据处理示例,例如实时结果,实时推文。
如果不是,实时数据处理或分析的替代方法是什么?
最佳答案
带有Map-Reduce的实时应用程序
让我们尝试使用Hadoop实现实时应用。要了解这种情况,请考虑使用温度传感器。假设传感器继续工作,我们将继续获取新的读数。因此数据永远不会停止。
我们不应该等待数据完成,因为它永远不会发生。然后,也许我们应该继续定期(例如每小时)进行分析。我们可以每小时运行一次Spark,并获取最后一小时的数据。
如果需要每小时进行最后24小时分析怎么办?我们是否应该每小时重新处理最近24小时的数据?也许我们可以计算小时数据,将其存储起来,然后使用它们来计算24小时数据。它将起作用,但是我必须编写代码才能做到这一点。
我们的问题才刚刚开始。让我们迭代一些使我们的问题复杂化的要求。
我们的代码会创建警报。一小时后创建警报
可能不是处理它的最佳方法。我们能否在1内收到警报
第二?
数据需要几秒钟才能到达存储。现在你不能
在您的边界开始工作,您需要观察磁盘并
当数据到达小时边界时,触发作业。
我们可以将数据写入磁盘,读取数据,对其进行处理以及
产生结果,并与其他23小时的数据结合在一起
第二?现在事情开始变得紧张起来。
为作业使用正确的工具。您正在使用一字 Screwdriver
当您有六角 Spanner 时。
流处理
解决此类问题的正确工具称为“流处理”。这里的“流”是指数据流。数据序列将继续出现。 “流处理”可以监视数据的传入,处理和响应时间(以毫秒为单位)。
以下是我们想要超越批处理(Hadoop / Spark),舒适区域并考虑流处理的原因。
批处理,您需要将其存储,有时会切断
处理数据。那你得做下一批再担心
关于跨多个批次进行汇总。相反,流式传输
优雅自然地处理永无止境的数据流。您可以
有条件的话,要注意多个层次的关注(将对此进行讨论
当我们进入Windows时),还可以轻松查看来自多个
同时流。
收到事件(更新)的毫秒数内的结果。用
批处理通常需要几分钟。
随时间变化的模式。例如,如果您尝试检测
网络 session 在永无止境的流中的长度(这是一个示例
尝试检测序列),很难做到这一点
某些 session 将分为两批。流处理
可以轻松解决这个问题。如果您退后一步考虑,
最连续的数据序列是时间序列数据。例如,几乎
所有物联网数据都是时间序列数据。因此,使用
很自然的编程模型。
流进来时处理数据,从而分散处理
随着时间的推移。因此,流处理可以使用更少的硬件
比批处理。
流处理可让您处理大型火马风格的数据并
只保留有用的位。
交易, Activity ,网站访问),它们的增长速度会更快
物联网用例(各种传感器)。流媒体要多得多
考虑和编程这些用例的自然模型。
关于hadoop - 我们可以使用Hadoop MapReduce进行实时数据处理吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53833704/