Exception in thread "main" java.lang.IllegalArgumentException: Builtin jars can only be used when hive execution version == hive metastore version. Execution: 2.1 != Metastore: 1.2.1. Specify a valid path to the correct hive jars using spark.sql.hive.metastore.jars or change spark.sql.hive.metastore.version to 2.1.
今天运行集群的时候出现了这个问题 先声明CDH 的hive 的执行版本是 2.1 这个没有问题, 对应的 spark.sql.hive.metastore.version 应该也是设置一样的 2.1 这样设置没有问题; 看看yarn 报的错,是版本指定不匹配导致的;那么先检查一下集群中的是否存在 hive 1.2.1 的jar 包
[root@sz-h37-v-bd-master02 ~]
查询一下 主要的执行jar 环境里没有出现; 再查看一下oozie 的HDFS 目录,是否有其他的jar 包;
再图上这个目录下,检查一下是否有hive-metastore 版本有1.2.1 的,如果没有的恭喜你,不是集群系统的问题; 另一个方法,专门写一个程序测试一下你的代码;再集群上运行测试; 最后发现问题的原因是再spark job UI 界面找到问题;
发现这个运行的版本不对, 发现这个是我本地运行的版本,我不应该的呀,那么问题出来了,为什么好端端的调用了本地的测试环境的设置 再检查所有代码中发现这个问题; 之前偷懒不想写隐式转换,我偷懒再本地运行的时候写了一个全局变量 很多object里有添加了这个, 导致集群运行环境里面出现了执行hive -metastore 是1.2.1 的版本, 所以一直报错,这就是问题所在!!! 以后长点心吧!!
|