我不能用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)
我做错什么了?
1条答案
按热度按时间c90pui9n1#
spark-defaults.conf.template
只是一个模板,不由spark读取,因此不会加载jar。必须复制/重命名此文件才能删除模板后缀如果您想使用那些特定的jar文件,还需要下载spark2.2。
如果您想使用的是kafka包,请确保您的spark版本使用scala2.10。否则,请使用2.11版本