Apache spark 使用带Spark的卡夫卡的优势超过仅使用Spark
卡夫卡很常见。很多公司都使用它。我完全理解卡夫卡和斯帕克是如何工作的,我对他们都很有经验。我不明白的是用例。你为什么要将卡夫卡与Spark一起使用,而不仅仅是Spark 在我看来,Kafka的主要用途是作为ETL管道中用于实时(流)数据的暂存区域 我设想有一个数据源集群,数据最初存储在其中。例如Vertica、Cassandra、Hadoop等 然后是一个处理集群,它从数据源集群读取数据,并将其写入分布式Kafka日志,这基本上是一个暂存数据集群 然后还有另一个处理集群——Spark集群,它从Kafka读取数据,对数据进行一些转换和聚合,并将数据写入最终目的地 如果我的想象是正确的,我可以从中间剪掉卡夫卡,在Spark集群上运行的Spark程序中,驱动程序将从原始源读取数据,并将其并行处理。把卡夫卡放在中间的优势是什么?Apache spark 使用带Spark的卡夫卡的优势超过仅使用Spark,apache-spark,apache-kafka,stream-processing,Apache Spark,Apache Kafka,Stream Processing,卡夫卡很常见。很多公司都使用它。我完全理解卡夫卡和斯帕克是如何工作的,我对他们都很有经验。我不明白的是用例。你为什么要将卡夫卡与Spark一起使用,而不仅仅是Spark 在我看来,Kafka的主要用途是作为ETL管道中用于实时(流)数据的暂存区域 我设想有一个数据源集群,数据最初存储在其中。例如Vertica、Cassandra、Hadoop等 然后是一个处理集群,它从数据源集群读取数据,并将其写入分布式Kafka日志,这基本上是一个暂存数据集群 然后还有另一个处理集群——Spark集群,它从K
您能给我一些具体的使用案例,其中Kafka很有帮助,而不是一开始就读取数据来激发灵感,而不必经过Kafka吗?Kafka Streams直接解决了流处理中的许多难题:
- 具有毫秒延迟的一次事件处理(非微批处理)
- 状态完整处理,包括分布式连接和聚合
- 方便的DSL
- 使用类似数据流的模型打开无序数据的窗口
- 具有快速故障切换的分布式处理和容错功能
- 无停机滚动部署
链接参考:在一些公司,数据作为主存储写入Kafka。从那里,它会被写到卡桑德拉、Hadoop等等。除此之外,卡夫卡的API不仅仅是生产者和消费者。对于其他流媒体技术以及(例如Streamset、Flink、Beam)@cricket_007,我们可以问同样的问题,假设我们正在谈论一家在线广告公司,它有一个Java Netty web服务器,接收关于广告印象或点击的请求,通知它,所以如果我没记错的话,Netty web服务器将印象和点击直接从内存写入Kafka,作为存储此数据的第一个数据存储,然后Spark/Flink/Storm/Samza从Kafka读取数据,进行处理,并以更结构化的方式将其写入Cassandra/Hadoop/等。。我说的对吗?它不一定是JavaWeb服务,但是是的,这完全是错误的possible@cricket_007我知道它不一定是Java。我只是想举个具体的例子。我想现在整个端到端流程对我来说更加清晰了,谢谢。你说卡夫卡的可用性比这强。你能给我一个不同场景的例子吗,卡夫卡扮演着不同的角色?卡夫卡流不需要像Spark这样的独立集群来转换、过滤和加入卡夫卡事件。Kafka Connect可用于在外部系统之间传输消息,在大多数情况下只需要配置文件,而不是像Spark中那样不断编写相同的ETL代码,或调整执行器和内存。。。这些是生产者/消费者之外的API