Hadoop 使用WAL接收器的Spark Kafka积分
我在Databricks的博客下面阅读 在解释spark kafka集成如何使用WAl接收器的过程时,它说 1.在Spark workers/executors中运行的卡夫卡接收器持续接收卡夫卡数据这使用了高级消费者API 卡夫卡 2.接收到的数据存储在Spark的worker/executor内存以及WAL(在HDFS上复制)中。卡夫卡接收器已更新 Kafka仅在数据被持久化后才偏移到Zookeeper 日志。Hadoop 使用WAL接收器的Spark Kafka积分,hadoop,apache-spark,apache-kafka,spark-streaming,Hadoop,Apache Spark,Apache Kafka,Spark Streaming,我在Databricks的博客下面阅读 在解释spark kafka集成如何使用WAl接收器的过程时,它说 1.在Spark workers/executors中运行的卡夫卡接收器持续接收卡夫卡数据这使用了高级消费者API 卡夫卡 2.接收到的数据存储在Spark的worker/executor内存以及WAL(在HDFS上复制)中。卡夫卡接收器已更新 Kafka仅在数据被持久化后才偏移到Zookeeper 日志。 现在我的疑问是,高级使用者如何在zookeeper中更新偏移量,因为高级使用者不
现在我的疑问是,高级使用者如何在zookeeper中更新偏移量,因为高级使用者不处理偏移量,它是由zookeeper处理的。所以,一旦我们使用zookeeper从卡夫卡那里读到一条消息,zookeeper就会自动更新偏移量 因此,当消费者从卡夫卡中的特定主题检索数据时,消费者有责任更新zookeeper中的偏移量。因此,当您使用自定义kafka使用者时,它有一个内置的kafka API(org.apache.kafka.clients.consumer.*这样做),一旦您从特定主题接收到数据,它就会更新偏移量
对于spark中基于接收器的方法,它使用Kafka的高级API更新zookeeper中的偏移量。因此,当消费者从Kafka中的特定主题检索数据时,消费者有责任更新zookeeper中的偏移量。因此,当您使用自定义kafka使用者时,它有一个内置的kafka API(org.apache.kafka.clients.consumer.*这样做),一旦您从特定主题接收到数据,它就会更新偏移量
对于spark中基于接收器的方法,它使用Kafka的高级API更新zookeeper中的偏移量。您正在阅读过时的文档。卡夫卡已经是一根圆木了,所以在它前面加上沃尔就没什么意义了。这就是创建
DirectConsumer
的原因。谢谢你的评论。是的,你是对的。但我试图理解沃尔的接收器是如何工作的。你正在阅读过时的文档。卡夫卡已经是一根圆木了,所以在它前面加上沃尔就没什么意义了。这就是创建DirectConsumer
的原因。谢谢你的评论。是的,你是对的。但我试图理解沃尔接收机的设计原理。