执行 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引擎了,
但是在Hue上使用tez引擎会报错,
解决方案:
hue使用的是hive的远程连接窗口,所以在配置值得在hiveserver2的环境高级代码段配置
重启hive组件