我正在开发一个原型lambda系统,我的数据通过flume流到hdfs。我还需要把数据输入storm。flume是一个推送系统,storm更具吸引力,所以我不认为尝试将一个喷口连接到flume是明智的,但我认为应该在两者之间有一个消息队列。同样,这是一个原型,所以我在寻找最佳实践,而不是完美。我正在考虑将一个符合amqp的队列作为Flume,然后从一个喷口中提取消息。
这是个好办法吗?如果是这样,我想使用一个消息队列,它在flume世界(作为Flume)和storm世界(作为喷口)中都有相对强大的支持。如果我使用amqp,那么我假设这会让我选择使用任何我想要使用的amqp兼容队列,对吗?谢谢。
3条答案
按热度按时间quhf5bfb1#
如果您打算使用amqp,我建议您坚持使用amqp规范的最终1.0版本。否则,当您尝试从以前的版本升级到它时,您会感到一些痛苦。
lbsnaicq2#
你的方法很有道理,但是,对我们来说,amqp兼容的问题看起来不那么重要。我会尽力解释原因。
我们正在使用Kafka将数据导入storm。主要原因是性能和可用性。amqp投诉队列似乎不是为在相当长的时间内保存信息而设计的,而对于Kafka来说,这只是一个定义。这使我们能够长时间保存消息,并允许我们轻松地“回放”这些消息(因为我们希望使用的消息总是由消费者控制的,所以我们可以一次又一次地使用相同的消息,而无需为此设置整个系统)。而且,Kafka的表演是我所见过的任何东西都无法比拟的。
storm有一个非常有用的kafkaspout,其中需要注意的主要事项是:
错误报告-有一些改进要做。信息并不像人们希望的那样清晰。
它取决于zookeeper(如果您有storm,它已经在那里了),并且需要手动为它创建一个路径。
根据风暴版,注意Kafka版在用。它是有文档记录的,但是,很容易被遗漏并导致不明确的问题。
dphi5xsq3#
您可以先将数据流传输到代理主题。那么Flume和雨水口都可以消耗这个主题。flume有一个jms源代码,可以很容易地从messagebroker中使用它。和一个风暴喷口,让信息进入风暴。