执行 hive:直接报java.lang.ClassNotFoundException: org.apache.hadoop.mapred.MRVersion
CDH集群安装组件都ok,在Hue界面中使用Hive的HQL是都是ok的
但是直接在liunx中,打开客户端命令:
执行 hive:直接报java.lang.ClassNotFoundException: org.apache.hadoop.mapred.MRVersion
解决方案:
因为CDH的hive-site.xml配置文件中没有指向hadoop的安装目录,以下是我后加的配置相:
hive在CDH中的路径如下:/opt/cloudera/parcels/CDH/lib/hive/conf,注意,修改后记得分发集群
hive on tez 运行时抛 java.lang.NoClassDefFoundError: com/esotericsoftware/kryo/Serializer
解决方案:
将/opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/oozie/libserver/kryo-2.22.jar的jar包放入到tez/lib下。
如果报跑tez任务的是报classnotfound,可以试着在hadoop-env.sh的最后添加tez的位置。
vi /etc/hadoop/conf/hadoop-env.sh,配置后需要分发到集群当中
TEZ_CONF_DIR=/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/tez/conf/tez-site.xml
TEZ_JARS=/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/tez
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*
配置好之后,在liunx的终端就可以使用tez引擎了,
Hive报错:org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris
如果在hive的CLI客户端查看日志(hive --hiveconf hive.root.logger=DEBUG,console)发现报Invalid configuration of tez jars, tez.lib.uris
主要是由于hadoop运行时找不到tez-site.xml文件,
解决:
把tez-site.xml文件放到/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop的目录下即可
但是在Hue上使用tez引擎会报错,
解决方案:
hue使用的是hive的远程连接窗口,所以在配置值得在hiveserver2的环境高级代码段配置
重启hive组件