出现原因
一句话总结——高版本编译的sqoop job jar 无法在低版本下运行。
CDH在安装过程中,会自己下载jdk(5.15.0时是jdk1.7.0_67-cloudera)。在组件拉起时,不指定节点的情况下,都是以自下载的jdk启动。
如果节点实际应用的jdk版本比CDH自下载的要高,比如我们常用的是1.8并且写到环境变量中。那么当shell调用sqoop job时,因为版本混乱的原因,就会出现这个error。
解决办法
1.回滚节点的版本至与CDH自下载的jdk相同
2.更新CDH中节点的java home
全局覆盖
主机 >> 所有主机 >> 配置 >> 高级 >> Java主目录
在CDH5.6.0的情况下是立即生效。很诡异。
指定节点覆盖
主机 >> 所有主机 >> 你想修改的节点 >> 配置 >> 高级 >> Java主目录
修改保存后记得重启一下该节点上的所有角色