Hadoop / Spark在处理大量数据和批量处理的情况下闪耀,但当您的用例围绕实时分析需求时,那么 卡夫卡蒸汽 和 德鲁伊 是值得考虑的好选择。
这是了解类似用例的良好参考链接: https://www.youtube.com/watch?v=3NEQV5mjKfY
Hortonworks还提供HDF Stack( https://hortonworks.com/products/data-platforms/hdf/ )最适合与运动数据相关的用例。
卡夫卡和德鲁伊文档是了解两种技术强度的好地方。以下是他们的文档链接:
卡夫卡: https://kafka.apache.org/documentation/streams/ 德鲁伊: http://druid.io/docs/latest/design/index.html#when-to-use-druid
在HDP 3.1中,引入了Hive-Kafka集成以处理实时数据。有关详细信息,请参阅文档: Apache Hive-Kafka集成
您可以 将Apache Druid添加到Hadoop集群 处理事件数据的OLAP查询,你可以使用Hive和Kafka与Druid。
的 具有Map-Reduce的实时应用程序 强> 让我们尝试使用Hadoop实现实时应用程序。为了理解这种情况,我们考虑一下温度传感器。假设传感器继续工作,我们将继续获得新的读数。所以数据永远不会停止。
我们不应该等待数据完成,因为它永远不会发生。那么也许我们应该继续定期进行分析(例如每小时)。我们可以每小时运行Spark并获取最后一小时的数据。
如果每小时,我们需要过去24小时的分析怎么办?我们应该每小时重新处理过去24小时的数据吗?也许我们可以计算每小时数据,存储它,并使用它们来计算24小时数据。它会工作,但我必须编写代码来完成它。
我们的问题刚刚开始。让我们迭代一些使我们的问题复杂化的要求。
的 流处理 强> 解决此类问题的正确工具称为“流处理”。这里“流”指的是数据流。将继续出现的数据序列。 “流处理”可以在数据进入时对其进行监视,处理它们,并在几毫秒内响应它们。
以下是我们想要超越批处理(Hadoop / Spark),我们的舒适区域以及考虑流处理的原因。