Спарк Джоб с Кафкой в ​​Кубернетесе - PullRequest
0 голосов
/ 27 февраля 2020

У нас есть приложение Spark Java, которое читает из базы данных и публикует сообщения на Kafka. Когда мы выполняем задание локально в командной строке windows со следующими аргументами, оно работает должным образом:

bin/spark-submit -class com.data.ingestion.DataIngestion --jars  local:///opt/spark/jars/spark-sql-kafka-0-10_2.11-2.3.0.jar local:///opt/spark/jars/data-ingestion-1.0-SNAPSHOT.jar

spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.0 --class com.data.ingestion.DataIngestion data-ingestion-1.0-SNAPSHOT.jar

Аналогично, при попытке выполнить команду, используя мастер k8s

bin/spark-submit --master k8s://https://172.16.3.105:8443 --deploy-mode cluster --conf spark.kubernetes.container.image=localhost:5000/spark-example:0.2 --class com.data.ingestion.DataIngestion --jars  local:///opt/spark/jars/spark-sql-kafka-0-10_2.11-2.3.0.jar local:///opt/spark/jars/data-ingestion-1.0-SNAPSHOT.jar

Выдает следующую ошибку:

Exception in thread "main" java.util.ServiceConfigurationError: 
org.apache.spark.sql.sources.DataSourceRegister: Provider 
org.apache.spark.sql.kafka010.KafkaSourceProvider could not be instantiated

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Исходя из ошибки, это будет означать, что по крайней мере один узел в кластере не имеет /opt/spark/jars/spark-sql-kafka-0-10_2.11-2.3.0.jar

Я предлагаю вам создать Uber JAR, который включает этот пакет структурированной потоковой передачи Kafka, или использовать --packages кроме локальных файлов в дополнение к настройке решения, такого как Rook или MinIO, чтобы иметь общую файловую систему в k8s / spark

0 голосов
/ 29 февраля 2020

Кажется * версия 1002 * и версия Spark Kafka не были выровнены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...