Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache storm 阿帕奇·卡夫卡vs阿帕奇风暴_Apache Storm_Apache Kafka_Data Integration - Fatal编程技术网

Apache storm 阿帕奇·卡夫卡vs阿帕奇风暴

Apache storm 阿帕奇·卡夫卡vs阿帕奇风暴,apache-storm,apache-kafka,data-integration,Apache Storm,Apache Kafka,Data Integration,ApacheKafka:分布式消息传递系统 apachestorm:实时消息处理 我们如何在实时数据管道中使用这两种技术来处理事件数据 在实时数据管道方面,在我看来,两者的工作是相同的。我们如何在数据管道上同时使用这两种技术?您使用Apache Kafka作为一种分布式、健壮的队列,它可以处理大量数据,并使您能够将消息从一个端点传递到另一个端点 暴风雨不是排队。它是一个具有分布式实时处理能力的系统,这意味着您可以并行地对实时数据执行各种操作 这些工具的通用流程(据我所知)如下所示: 实时系统--

ApacheKafka:分布式消息传递系统
apachestorm:实时消息处理

我们如何在实时数据管道中使用这两种技术来处理事件数据


在实时数据管道方面,在我看来,两者的工作是相同的。我们如何在数据管道上同时使用这两种技术?

您使用Apache Kafka作为一种分布式、健壮的队列,它可以处理大量数据,并使您能够将消息从一个端点传递到另一个端点

暴风雨不是排队。它是一个具有分布式实时处理能力的系统,这意味着您可以并行地对实时数据执行各种操作

这些工具的通用流程(据我所知)如下所示:

实时系统-->卡夫卡-->风暴-->NoSql-->BI(可选)


因此,您可以让您的实时应用程序处理大量数据,并将其发送到Kafka队列。Storm从卡夫卡提取数据,并应用一些必要的操作。此时,您通常希望从这些数据中获得一些好处,因此您可以将其发送到某个Nosql db进行其他BI计算,也可以从任何其他系统查询此Nosql。

Kafka和Storm的用途略有不同:

Kafka是一个分布式消息代理,每秒可以处理大量消息。它使用发布-订阅范式,并依赖于主题和分区。卡夫卡使用Zookeeper在经纪人之间共享和保存状态。因此卡夫卡基本上负责将信息从一台机器传输到另一台机器

Storm是一个可扩展、容错、实时分析系统(就像Hadoop一样实时思考)。它使用来自源(喷口)的数据并将其传递到管道(螺栓)。可以在拓扑中组合它们。所以Storm基本上是一个计算单元(聚合、机器学习)


但您可以同时使用它们:例如,您的应用程序使用kafka将数据发送到其他服务器,这些服务器使用storm对其进行计算。

这就是它的工作原理 卡夫卡-提供实时流

Storm-在该流上执行某些操作

您可以看看GitHub项目

(D3js是一个图形表示库)

理想情况:

Realtime application -> Kafka -> Storm -> NoSQL -> d3js
Realtime application -> Kafka -> <plain Node.js> -> NoSQL -> d3js
此存储库基于:

Realtime application -> Kafka -> Storm -> NoSQL -> d3js
Realtime application -> Kafka -> <plain Node.js> -> NoSQL -> d3js
Realtime application->Kafka->->->NoSQL->d3js

每个人都在向你解释 ApacheKafka:是连续消息队列

ApacheStorm:是一种连续处理工具

在这方面,Kafka将使用API从任何网站(如FB、Twitter)获取数据,并使用ApacheStorm处理数据,您可以将处理后的数据存储在任意数据库中


只要遵循它,你就会有一些想法

我知道这是一个较老的线程,Apache Kafka和Storm在编写时的比较是有效和正确的,但值得注意的是,Apache Kafka在过去几年中以及自版本0.10(2016年4月)以来已经有了很大的发展Kafka包含了一个Kafka Streams API,它提供了流处理功能,而不需要任何其他软件,如Storm。Kafka还包括用于连接到各种数据源和数据汇(目的地)的Connect API

公告博客-

当前Apache文档-

在0.11 Kafka中,流处理功能进一步扩展,以提供精确的语义和事务


当我有一个用例需要我可视化或提醒模式(想想twitter趋势),同时继续处理事件时,我有几个模式。
NiFi允许我处理一个事件,并使用非常非常少的自定义编码,使用低(er)批聚合更新持久数据存储。
Storm(大量自定义编码)允许我几乎实时访问趋势事件。
如果我可以等待几秒钟,那么我就可以从卡夫卡批量生产出hdfs(拼花地板)并进行加工。

如果我需要在几秒钟内知道,我需要NiFi,甚至可能是Storm。(想想监测数千个地球站,在那里我需要看到龙卷风警报的小区域天气状况)。

简单地卡夫卡将消息从一个节点发送到另一个节点,然后风暴处理消息。请查看此示例,了解如何

感谢福哈德。这很有帮助。一个问题是,我们可以使用ApacheKafka来聚合Apache日志文件,还是仍然需要Flume来完成这项工作?我想您可以,尽管我不熟悉这种流程。也许您可以根据自己的需要检查Splunk(只是一个猜测而已)。我建议使用GrayLog并将其连接到ApacheKafka。GrayLog已经有了一个kakfa输入插件。Abhishek,上面答案中提到的链接被破坏了。您可以更新链接吗?因此,现在基本上实时系统直接与Kafkaas端点和Kafka存储进行通信,例如与数据库进行通信?是的,现在Kafka包括Kafka连接,以与数据库和其他数据源(系统日志、JMS、日志文件等)进行通信,以及Kafka流,以进行流处理(连接、转换、过滤器、聚合),然后返回Kafka Connect,将其写入另一个数据库或存储库。