火花流功能火花提交时间通过异常

Posted

技术标签:

【中文标题】火花流功能火花提交时间通过异常【英文标题】:spark streaming functionality spark-submit time through exception 【发布时间】:2016-02-16 16:57:52 【问题描述】:

我是 Spark 流媒体的新手。

当我将 spark 流功能作为普通 scala 应用程序运行时,它按预期工作。

我能够捕获我的 kafka 事件并能够存储在 hdfs 本身中。

当我尝试使用 spark-submit 命令作为流媒体 jar 运行时,出现以下错误。

spark-submit --class Test  --master yarn  --executor-memory 20G --num-executors 50 spark-kafka-streaming-0.0.1-SNAPSHOT-jar-with-dependencies.jar



16/02/16 08:39:23 INFO scheduler.JobGenerator: Started JobGenerator at 1455640800000 ms

16/02/16 08:39:23 INFO scheduler.JobScheduler:已启动 JobScheduler 16/02/16 08:40:00 INFO utils.VerifiableProperties:验证属性

16/02/16 08:40:00 INFO utils.VerifiableProperties: Property group.id is overridden to
16/02/16 08:40:00 INFO utils.VerifiableProperties: Property zookeeper.connect is overridden to 
16/02/16 08:40:00 ERROR actor.ActorSystemImpl: Uncaught fatal error from thread [sparkDriver-akka.actor.default-dispatcher-2] shutting down ActorSystem [sparkDriver]
java.lang.NoSuchMethodError: org.apache.spark.streaming.kafka.DirectKafkaInputDStream.id()I
    ache.spark.streaming.kafka.DirectKafkaInputDStream.compute(DirectKafkaInputDStream.scala:165)at org.ap
at ache.spark.streaming.kafka.DirectKafkaInputDStream.compute(DirectKafkaInputDStream.scala:165)at org.ap   at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute$1$$anonfun$1.apply(DStream.scala:300)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute$1$$anonfun$1.apply(DStream.scala:300)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute$1.apply(DStream.scala:299)
at org.apache.spark.streaming.dstream.DStream$$anonfun$getOrCompute$1.apply(DStream.scala:287)

请帮帮我。

提前致谢。

【问题讨论】:

【参考方案1】:

InputDStream.id 从 1.4 开始添加到 Spark Streaming。因此,spark-kafka-streaming-0.0.1-SNAPSHOT-jar-with-dependencies.jar 很可能是使用 Spark 1.4+ 生成的,而 spark-submit 的 Spark 版本低于 1.4。

通常,您应该始终使用相同的版本进行编译和运行时。

第一步是使用bin/spark-submit --version 检查您的 spark-submit 版本。然后检查 maven pom.xml(或 sbt 构建文件)中 Spark jar 的版本,看看它们是否相同。如果没有,请更新其中一个并确保它们相同。要更新spark-submit,您可能需要从http://spark.apache.org/downloads.html 下载正确的版本

【讨论】:

您好 zsxwing,感谢您的回复,当我尝试作为正常的 scala 应用程序运行时,它按预期工作。如果是 jar 相关问题,请告诉我如何解决此问题。你能建议我如何让我的 spark-kafka-streaming-0.0.1-SNAPSHOT-jar-with-dependencies.jar 按预期工作。你能详细说明一下答案吗?

以上是关于火花流功能火花提交时间通过异常的主要内容,如果未能解决你的问题,请参考以下文章

使用远程 jvm 在纱线集群上提交火花作业时出现异常

net.jpounz.lz4 使用火花流从 kafka 读取时出现异常

关于火花流的变换功能的困惑

替代递归运行Spark-submit作业

火花提交:--jars 不起作用

使用火花流解析事件中心消息上的 JSON