【发布时间】:2017-08-16 22:28:06
【问题描述】:
我正在尝试运行火花流示例: Directkafkawordcount.scala
要创建 jar,我使用带有插件的“build.sbt”:
name := "Kafka Direct"
version := "1.0"
scalaVersion := "2.11.6"
libraryDependencies ++= Seq ("org.apache.spark" % "spark-streaming-kafka-0-8_2.11" % "2.1.0",
"org.apache.spark" % "spark-streaming_2.11" % "2.1.0",
"org.apache.spark" % "spark-core_2.11" % "2.1.0" exclude("com.esotericsoftware.minlog", "minlog")
)
resolvers ++= Seq(
"Maven Central" at "https://repo1.maven.org/maven2/"
)
mergeStrategy in assembly := {
case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
case m if m.toLowerCase.matches("meta-inf.*\\.sf$") => MergeStrategy.discard
case "log4j.properties" => MergeStrategy.discard
case m if m.toLowerCase.startsWith("meta-inf/services/") => MergeStrategy.filterDistinctLines
case "reference.conf" => MergeStrategy.concat
case _ => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith "pom.properties" => MergeStrategy.discard
case x => val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
"sbt package" 成功但是当我想从 target/scala-2.11/classes 目录提交时: “spark-submit --class org.apache.spark.examples.streaming.DirectKafkaWordCount --master local[2] /home/hadoop/DirectKafkaProject/target/scala-2.11/kafka-direct_2.11-1.0.jar localhost:9092 xyz123"
它给了我这个错误:
引起:java.lang.ClassNotFoundException:org.apache.spark.streaming.kafka.KafkaUtils$ 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366)
我已经设置了 SPARK_CLASSPATH 和 SPARK_LOCAL_IP。我已经尝试使用 -jars 选项,但它要求另一个 .jar 文件并且它一直在要求其他 .jar 文件。我已经按照这个网站的建议做了每一件事,但我无法解决我的问题。 斯卡拉版本:2.11.6 火花版本:2.1.0 卡夫卡版本:2.11-0.10.2.0 .
请帮帮我。谢谢。
【问题讨论】:
-
您需要添加 Kafka jar、Kafa utils、metrics core jar 来触发类路径。
-
我的 spark 类路径是用 spark 的 jar 和 kafka jar 设置的。
-
我尝试使用这个“spark-submit --class org.apache.spark.examples.streaming.DirectKafkaWordCount --jars /home/hadoop/jars/spark-streaming-kafka-0-8_2。 11-2.1.0.jar,/home/hadoop/jars/kafka-clients-0.10.2.0.jar,/home/hadoop/jars/metrics-core-2.2.0.jar,/home/hadoop/jars/kafka_2 .11-0.10.2.0.jar --master local[2] /home/hadoop/DirectKafkaProject/target/scala-2.11/kafka-direct_2.11-1.0.jar localhost:9092 MyTest1" 。但现在它显示“线程中的异常”main“java.lang.ClassCastException:kafka.cluster.BrokerEndPoint 无法转换为 kafka.cluster.Broker”。所以,请帮助我。谢谢。
-
但最后一条命令显示“线程“main”中的异常 java.lang.ClassCastException:kafka.cluster.BrokerEndPoint 无法转换为 kafka.cluster.Broker”这个异常。谢谢。
-
您确定您机器上的 kafka 已启动并正在运行吗?并尝试将 spark-kafka-streaming jar 添加到 spark 和 kafka 类路径,然后重试。
标签: apache-spark apache-kafka spark-streaming