我无法通过火花流运行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版本: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)
我在做什么错了?
答案 0 :(得分:0)
spark-defaults.conf.template
只是一个模板,不能被Spark读取,因此不会加载您的JAR。您必须复制/重命名此文件才能删除模板后缀
如果要使用这些特定的JAR文件,还需要下载Spark 2.2。
如果要使用的Kafka软件包,请确保您的Spark版本使用Scala 2.10。否则,请使用2.11版本