hadoop升級後,hive報錯

問題:java

Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface jline.Terminal, but class was expected
        at jline.ConsoleReader.<init>(ConsoleReader.java:191)
        at jline.ConsoleReader.<init>(ConsoleReader.java:186)
        at jline.ConsoleReader.<init>(ConsoleReader.java:174)
        at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:815)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:763)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:694)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)web

 

解決方法:shell

首先查看Hadoop和Hive的jline版本:apache

[hadoop@pslave2:/usr/local]$ find ./ -name jline*
./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/jline-2.11.jar
./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce1/lib/jline-2.11.jar
./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/yarn/lib/jline-2.11.jar
./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/jline-2.11.jar
./hive-0.13.1-cdh5.3.3/libbak20150703/jline-0.9.94.jar
./hive-0.13.1-cdh5.3.3/lib/jline-0.9.94.jar
./sqoop2-1.99.4-cdh5.3.3/shell/lib/jline-0.9.94.jar
./zookeeper-3.4.5-cdh5.3.3/src/java/lib/jline-0.9.94.LICENSE.txt
./zookeeper-3.4.5-cdh5.3.3/lib/jline-0.9.94.LICENSE.txt
./zookeeper-3.4.5-cdh5.3.3/lib/jline-0.9.94.jar
./zookeeper-3.4.5-cdh5.3.3/share/zookeeper/jline-0.9.94.LICENSE.txt
./zookeeper-3.4.5-cdh5.3.3/share/zookeeper/jline-0.9.94.jar
./hadoop-2.5.0-cdh5.3.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/jline-0.9.94.jar
./hadoop-2.5.0-cdh5.3.3/share/hadoop/mapreduce1/lib/jline-0.9.94.jar
./hadoop-2.5.0-cdh5.3.3/share/hadoop/yarn/lib/jline-0.9.94.jar
./hadoop-2.5.0-cdh5.3.3/share/hadoop/kms/tomcat/webapps/kms/WEB-INF/lib/jline-0.9.94.jartomcat

    咱們發現Hive的jline和Hadoop的不一致,因此須要將Hive的jline拷貝到Hadoop目錄下面:
   [hadoop@pslave2:/usr/local]$ cp ./hive-0.13.1-cdh5.3.3/lib/jline-0.9.94.jar ./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/yarn/lib/
mv ./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/yarn/lib/jline-2.11.jar ./apache/hadoop-2.6.0-cdh5.7.0/share/hadoop/yarn/lib/jline-2.11.jar20160526app

相關文章
相關標籤/搜索