kafka与spark流集成错误

3okqufwl  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(286)

我不能用Spark流来运行Kafka。以下是我到目前为止所采取的步骤:
下载了 jar 文件“spark-streaming-kafka-0-8-assembly_2.10-2.2.0.jar”并将其移动到 /home/ec2-user/spark-2.0.0-bin-hadoop2.7/jars 已将此行添加到 /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版本:Kafka2.10-0.10.2.2
jar文件版本:spark-streaming-kafka-0-8-assembly\u 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)

我做错什么了?

c90pui9n

c90pui9n1#

spark-defaults.conf.template 只是一个模板,不由spark读取,因此不会加载jar。必须复制/重命名此文件才能删除模板后缀
如果您想使用那些特定的jar文件,还需要下载spark2.2。
如果您想使用的是kafka包,请确保您的spark版本使用scala2.10。否则,请使用2.11版本

相关问题