Сервер Kafka находится на моем локальном компьютере, а мой сервер spark — на aws, я получаю сообщение об ошибке «Не удалось найти источник данных: kafka».

#apache-spark #apache-kafka #spark-structured-streaming

#apache-искра #apache-kafka #spark-структурированная потоковая передача

Вопрос:

Сервер Kafka находится на моем локальном компьютере, а мой сервер spark — на aws, я пытаюсь подключить оба. Я получаю сообщение об ошибке «Не удалось найти источник данных: kafka».

-Сервер Spark на aws

 kafka_df = spark.readStream 
        .format("kafka") 
        .option("kafka.bootstrap.servers", "localhost:9092") 
        .option("subscribe", "invoices") 
        .option("startingOffsets", "earliest") 
        .load() ` 
 

-Сервер производителя Kafka на локальном компьютере

 kafka-console-producer.sh --broker-list localhost:9092 --topic invoices
 

Ответ №1:

Вам необходимо добавить spark-sql-kafka пакет в свой драйвер (ы) Spark.

Для этого сообщения об ошибке не имеет значения, где запущены Spark или Kafka, однако localhost на AWS не удастся подключиться к Kafka, работающей на вашем собственном компьютере, и вам не следует небезопасно использовать Kafka через открытый Интернет, если вы хотите подключить их.

Комментарии:

1. .config("spark.jars.packages", "org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.0") Я добавил его в драйвер, все та же ошибка. Я также попытался изменить localhost IP-адрес своего локального компьютера на своем сервере spark, все та же ошибка… Есть идеи?

2. Я отчаянно нуждаюсь в решении.

3. Я не уверен, какую версию Spark вы используете, но убедитесь, что вы используете соответствующую версию. Кроме того, попробуйте использовать --packages команду отправки Spark. У меня никогда не было хорошего успеха в изменении конфигурации сеанса. И неясно, что вы подразумеваете под «IP-адресом локального компьютера», но AWS не может подключиться к вашей локальной (домашней) сети без настройки переадресации портов на вашем маршрутизаторе; вам лучше запустить Kafka в EC2 или MSK

4. Спасибо, мне пришлось добавить это org.apache.spark spark-sql-kafka-0-10_2.11:2.4.7 в файл spark-defaults.conf в spark home

5. да, так оно и было. но мне пришлось установить kafka на AWS.