我正在寻找可以用来将数据从社交媒体传输到hadoop的技术。我搜索了一下找到了那些技术人员Flume。Storm。Kafka。哪种工具最好?为什么?有人熟悉其他工具吗?
xxslljrj1#
最有可能的情况是,您希望使用flume,因为它是为与hdfs一起工作而构建的。然而,和所有事情一样,这要看情况而定。kafka基本上是一个队列系统,通常用于在分析体系结构出现故障时持久化数据。如果这听起来像是您需要的,那么可能值得研究rabbitmq、zeromq或kestrel。storm用于复杂事件处理。如果您使用storm,您将在引擎盖下使用zeromq,并且可能需要设置一个连接到kafka或rabbitmq的喷口。如果您需要在存储之前对数据执行复杂的munging,这可能是正确的选择。还有其他的选择,你可以使用太像Spark。我倾向于纯粹出于个人喜好而建议风暴。我听说linkedin也发布了一个实时复杂事件处理框架,但我记不起它的名字了。找到后我会更新帖子的。换言之,如果你问这个问题,可能是因为你还没有建立这个东西。如果是这样的话,如果您需要流媒体,您可能需要研究hadoop以外的东西。生态系统正在迅速扩张,可能有很多方法可以做你想做的事情。
fiei3ece2#
apachekafka是一个分布式消息传递系统。简而言之,它就像你用一个Kafka生产者将一些消息推送到(发布)一个Kafka队列中,而在另一端,你用一个Kafka消费者(订阅者)来消费它。消息/提要可以分为称为 Topic . 现在您可以在集群中运行kafka,这使得它具有很强的可伸缩性,并且可以在没有任何停机的情况下进行扩展。这可能是一个很好的选择举行你的社交媒体流。Kafka在一个可配置的时间内保留了推送到它的信息,最好的部分来自他们的文档,他们说kafka的性能在数据大小方面实际上是恒定的,因此保留大量数据不是问题。查看文档以获得更好的可见性。storm是一个可扩展的、容错的分布式计算系统,可以很容易地与任何队列(如kafka)或数据库(hdfs/cassandra等)集成。因此,您可以将消息馈送到storm集群,以便根据您的需求进行进一步处理。有一种叫做Kafka普特的东西,它将风暴和Kafka完美地结合在一起。您还应该看看kafka hadoop loader@github,它创建了 Hadoop Job for incremental loading messages from Kafka topics onto hdfs with multiple file output semantics 正如@peter klipfel所说:如果您需要流媒体,您可能需要研究hadoop以外的东西,您还可以检查其他可用的替代方法,如apache cassandra,它可以以非常低的延迟处理流数据。
Topic
Hadoop Job for incremental loading messages from Kafka topics onto hdfs with multiple file output semantics
j0pj023g3#
我认为这取决于你在哪里提取数据,以及你试图用数据做什么。另一种方法是使用ibmstreams,您可以直接从社交媒体流中提取数据并存储到您选择的许多不同的数据存储区。例如,您可以从以下位置使用streamsx.social工具箱:https://github.com/ibmstreams/streamsx.social 它允许您直接从http流中提取tweet。一旦您将数据放入流中,该产品还提供许多适配器,允许您将流数据存储到数据存储中(例如,hdfs使用streamsx.hdfs,hbase使用streamsx.hbase)我认为另一个需要考虑的问题是你对社交媒体数据做了什么样的分析。如果您想在数据存储之前分析流中的社会数据,ibmstreams还提供了一个文本工具箱,允许您从社会数据非结构化文本中提取见解。您可以分析数据,而不必将其存储在任何地方。希望有帮助!
3条答案
按热度按时间xxslljrj1#
最有可能的情况是,您希望使用flume,因为它是为与hdfs一起工作而构建的。然而,和所有事情一样,这要看情况而定。
kafka基本上是一个队列系统,通常用于在分析体系结构出现故障时持久化数据。如果这听起来像是您需要的,那么可能值得研究rabbitmq、zeromq或kestrel。
storm用于复杂事件处理。如果您使用storm,您将在引擎盖下使用zeromq,并且可能需要设置一个连接到kafka或rabbitmq的喷口。如果您需要在存储之前对数据执行复杂的munging,这可能是正确的选择。还有其他的选择,你可以使用太像Spark。我倾向于纯粹出于个人喜好而建议风暴。我听说linkedin也发布了一个实时复杂事件处理框架,但我记不起它的名字了。找到后我会更新帖子的。
换言之,如果你问这个问题,可能是因为你还没有建立这个东西。如果是这样的话,如果您需要流媒体,您可能需要研究hadoop以外的东西。生态系统正在迅速扩张,可能有很多方法可以做你想做的事情。
fiei3ece2#
apachekafka是一个分布式消息传递系统。简而言之,它就像你用一个Kafka生产者将一些消息推送到(发布)一个Kafka队列中,而在另一端,你用一个Kafka消费者(订阅者)来消费它。消息/提要可以分为称为
Topic
. 现在您可以在集群中运行kafka,这使得它具有很强的可伸缩性,并且可以在没有任何停机的情况下进行扩展。这可能是一个很好的选择举行你的社交媒体流。Kafka在一个可配置的时间内保留了推送到它的信息,最好的部分来自他们的文档,他们说
kafka的性能在数据大小方面实际上是恒定的,因此保留大量数据不是问题。
查看文档以获得更好的可见性。
storm是一个可扩展的、容错的分布式计算系统,可以很容易地与任何队列(如kafka)或数据库(hdfs/cassandra等)集成。因此,您可以将消息馈送到storm集群,以便根据您的需求进行进一步处理。有一种叫做Kafka普特的东西,它将风暴和Kafka完美地结合在一起。
您还应该看看kafka hadoop loader@github,它创建了
Hadoop Job for incremental loading messages from Kafka topics onto hdfs with multiple file output semantics
正如@peter klipfel所说:如果您需要流媒体,您可能需要研究hadoop以外的东西,您还可以检查其他可用的替代方法,如apache cassandra,它可以以非常低的延迟处理流数据。j0pj023g3#
我认为这取决于你在哪里提取数据,以及你试图用数据做什么。
另一种方法是使用ibmstreams,您可以直接从社交媒体流中提取数据并存储到您选择的许多不同的数据存储区。
例如,您可以从以下位置使用streamsx.social工具箱:https://github.com/ibmstreams/streamsx.social 它允许您直接从http流中提取tweet。
一旦您将数据放入流中,该产品还提供许多适配器,允许您将流数据存储到数据存储中(例如,hdfs使用streamsx.hdfs,hbase使用streamsx.hbase)
我认为另一个需要考虑的问题是你对社交媒体数据做了什么样的分析。如果您想在数据存储之前分析流中的社会数据,ibmstreams还提供了一个文本工具箱,允许您从社会数据非结构化文本中提取见解。您可以分析数据,而不必将其存储在任何地方。
希望有帮助!