Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 使用WAL接收器的Spark Kafka积分_Hadoop_Apache Spark_Apache Kafka_Spark Streaming - Fatal编程技术网

Hadoop 使用WAL接收器的Spark Kafka积分

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中更新偏移量,因为高级使用者不

我在Databricks的博客下面阅读

在解释spark kafka集成如何使用WAl接收器的过程时,它说

1.在Spark workers/executors中运行的卡夫卡接收器持续接收卡夫卡数据这使用了高级消费者API 卡夫卡

2.接收到的数据存储在Spark的worker/executor内存以及WAL(在HDFS上复制)中。卡夫卡接收器已更新 Kafka仅在数据被持久化后才偏移到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
的原因。谢谢你的评论。是的,你是对的。但我试图理解沃尔接收机的设计原理。