Кафка с искровой интеграционной ошибкой - PullRequest
0 голосов
/ 08 ноября 2018

Я не могу запустить Кафку с искровым потоком. Ниже приведены шаги, которые я предпринял до сих пор:

  1. Загрузил файл jar "spark-streaming-kafka-0-8-assembly_2.10-2.2.0.jar" и переместил его в /home/ec2-user/spark-2.0.0-bin-hadoop2.7/jars

  2. Добавлена ​​эта строка в /home/ec2-user/spark-2.0.0-bin-hadoop2.7/conf/spark-defaults.conf.template -> spark.jars.packages org.apache.spark:spark-streaming-kafka-0-8-assembly_2.10:2.2.0

Kafka Версия: kafka_2.10-0.10.2.2

Версия файла JAR: spark-streaming-kafka-0-8-assembly_2.10-2.2.0.jar

Код Python:

os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-streaming-kafka-0-8-assembly_2.10-2.2.0 pyspark-shell' 
kvs = KafkaUtils.createDirectStream(ssc, ["divolte-data"], {"metadata.broker.list": "localhost:9092"})

Но я все еще получаю следующую ошибку:

Py4JJavaError: An error occurred while calling o39.createDirectStreamWithoutMessageHandler.
: java.lang.NoClassDefFoundError: Could not initialize class kafka.consumer.FetchRequestAndResponseStatsRegistry$
    at kafka.consumer.SimpleConsumer.<init>(SimpleConsumer.scala:39)
    at org.apache.spark.streaming.kafka.KafkaCluster.connect(KafkaCluster.scala:59)

Что я делаю не так?

1 Ответ

0 голосов
/ 09 ноября 2018

spark-defaults.conf.template является только шаблоном и не читается Spark, поэтому ваши JAR-файлы не будут загружены. Вы должны скопировать / переименовать этот файл, чтобы удалить суффикс шаблона

Вам также необходимо скачать Spark 2.2, если вы хотите использовать эти конкретные файлы JAR.

И убедитесь, что ваша версия Spark использует Scala 2.10, если вы хотите использовать пакет Kafka. В противном случае используйте версию 2.11

...