由于项目需要,将hadoop2.6.4重新编译支持了snappy压缩。重新部署成功以后跑了个wordcount没有任何问题。
满心欢喜启动hive,结果报错!!!
错误信息如下:
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
经查证,hadoop2.6.4里的jline包是0.94版本的,而我的hive版本是1.2.1,这个版本已经升级成了jline2了
解决办法如下:
进入到hadoop安装目录的share/hadoop/yarn/lib下删除jline的jar文件
在etc/profile文件下加入
export HADOOP_USER_CLASSPATH_FIRST=true
注意:各个节点都需要改,并且重新source /etc/profile
然后重启hadoop集群即可。
本文解决了Hadoop 2.6.4与Hive 1.2.1因jline版本不一致导致的运行错误。通过删除Hadoop中特定的jline jar文件并设置环境变量HADOOP_USER_CLASSPATH_FIRST,最终成功启动Hive。
1866

被折叠的 条评论
为什么被折叠?



