环境:

1.10.0-cdh6.3.2
2.4.0-cdh6.3.2
3.0.0-cdh6.3.2
2.1.1-cdh6.3.2

背景:

某天一个同事写了一个Hive UDF 需要部署到生产环境,部署成功后突然发现每小时运行的Spark sql的任务失败,查看日志如下:
image.png

问题定位:

发现关键字 “Unrecognized Hadoop major version number: 3.0.0-cdh6.3.2” ,意思3.0.0-cdh6.3.2的hadoop版本未被认可,因为集群本身为3.0.0-cdh6.3.2,去查看UDF Jar包的依赖同样为此版本,紧接着去查看了下Spark sql 任务的依赖发现版本不一致
3.0.0
2.4.4
因为Spark sql在初始化时需要加载Hive的UDF,导致Spark sql初始化时遇到版本冲突,最终导致任务失败;

解决方式:

将Spark sql任务的Maven依赖hadoop spark版本改为与集群一致重新编译打包后修复此问题;

参考文档:

https://www.cnblogs.com/chhyan-dream/p/13470523.html