spark User class threw exception: java.lang.NoSuchMethodError

在spark 集群上运行job的时候,经常会出现类似如下错误提示:

User class threw exception: java.lang.NoSuchMethodError: org.apache.spark.WritableConverter$.writableWritableConverterFn(Lscala/reflect/ClassTag;)Lscala/Function0;
at com.xiaomi.xxx.algorithm.common.LogUtils$.xxx(LogUtils.scala:23)
at com.xiaomi.xxx.algorithm.feature.xxx$.xxx(xxxlog.scala:17)
at com.xiaomi.xxx.algorithm.feature.xxx$.main(xxxlog.scala:74)
...

一般来说,上述错误都是因为对代码进行编译的版本与运行的版本不一致造成的。
使用Spark,这意味着用于编译的Spark版本与部署的版本(在机器或群集上)不同。

比如我某次运行的时候,代码编译的版本是spark 2.3,但是线上的submit脚本指定的是spark 2.1。然后将submit脚本里的spark版本指定为2.3即可。

发布了425 篇原创文章 · 获赞 1607 · 访问量 436万+

猜你喜欢

转载自blog.csdn.net/bitcarmanlee/article/details/104221200
今日推荐