#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 или MSK4. Спасибо, мне пришлось добавить это
org.apache.spark spark-sql-kafka-0-10_2.11:2.4.7
в файл spark-defaults.conf в spark home5. да, так оно и было. но мне пришлось установить kafka на AWS.