环境:
背景:
某天一个同事写了一个Hive UDF 需要部署到生产环境,部署成功后突然发现每小时运行的Spark sql的任务失败,查看日志如下:
问题定位:
发现关键字 “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 任务的依赖发现版本不一致
因为Spark sql在初始化时需要加载Hive的UDF,导致Spark sql初始化时遇到版本冲突,最终导致任务失败;
解决方式:
将Spark sql任务的Maven依赖hadoop spark版本改为与集群一致重新编译打包后修复此问题;