提交火花作业时获取 java.lang.NoSuchMethodError

Posted

技术标签:

【中文标题】提交火花作业时获取 java.lang.NoSuchMethodError【英文标题】:Getting java.lang.NoSuchMethodError while submitting spark job 【发布时间】:2020-02-26 03:50:44 【问题描述】:

我在提交 Spark 作业时遇到错误:

这可能是什么原因? 我通过以下方式提交 Spark 作业:

/current/spark2-client/bin/spark-submit \
--class com.pkg.ml.models.ML \
--master yarn-cluster \
--driver-memory 8G \
--executor-memory 2G \
--num-executors 100 \
--files ml.properties \
--jars /current/phoenix-client/phoenix-client.jar,/current/phoenix-client/lib/phoenix-spark-4.7.0.2.6.1.0-129.jar,/2.4.2.0-258/spark/lib/datanucleus-api-jdo-3.2.6.jar,/2.4.2.0-258/spark/lib/datanucleus-api-jdo-3.2.6.jar,/2.4.2.0-258/spark/lib/datanucleus-core-3.2.10.jar \
spark-ml-0.0.2.jar ml.properties $1 $2
rc=$?

if (( $rc )); then

    echo "Job failed" 1>&2

    exit $rc

fi

谢谢

【问题讨论】:

【参考方案1】:

请检查您安装的 spark 版本。 出现这个错误主要是因为spark的版本不同。 确保系统上的 spark 版本和 spark 客户端都应该相同。

【讨论】:

【参考方案2】:

很有可能需要在 VM 中进行更新。它包含在 VM 中纯粹是为了方便 - 因为它不是 CDH 的官方支持或包含的一部分,它不会像其他所有东西一样经过所有相同的测试。

【讨论】:

以上是关于提交火花作业时获取 java.lang.NoSuchMethodError的主要内容,如果未能解决你的问题,请参考以下文章

我编写了一个火花作业以在本地模式下运行,但是当我提交该作业时,我在纱线集群模式下运行它。在这种情况下究竟会发生啥?

火花提交时未读取 Dataproc 参数

AWS EMR 火花提交选项 - 失败

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

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

在火花提交作业中读取镶木地板文件时出现内存不足错误