Waq*_*med 9 streaming apache-kafka apache-spark spark-streaming
我正在阅读spark和它的real-time stream处理.我很困惑,如果spark本身可以读取来自Twitter或文件等来源的流,那么为什么我们需要kafka提供数据spark?如果有人介绍我,我们得到了什么好处,如果我们使用这将是巨大的spark用kafka.谢谢.
Kafka提供输入流的解耦和缓冲.
以Twitter数据为例,afaik连接到twitter api并获得与您指定的标准匹配的不断推文.如果你现在关闭你的Spark作业一小时对你服务器上的一些好处或推出一个新版本,那么你将错过那个小时的推文.
现在假设你把Kafka放在你的Spark作业面前,并且拥有一个非常简单的摄取线程,除了连接到api并将推文写入Kafka,Spark作业从中检索它们.由于Kafka将所有内容保留到光盘,因此您可以关闭处理作业,执行维护,重新启动后,它们将从脱机时检索所有数据.
此外,如果您以显着的方式更改处理作业并希望重新处理上周的数据,如果您的链中有Kafka(如果您将保留时间设置得足够高),则可以轻松地执行此操作 - 您只需滚动完成新工作并更改Kafka中的偏移量,以便您的工作重新读取旧数据,一旦完成,您的数据存储将与您的新处理模型保持同步.
关于卡夫卡背后的人之一Jay Kreps撰写的一般原则,有一篇很好的文章,如果你想了解更多信息,可以阅读.
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |