java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected

来源:互联网 发布:js获取当前点击的元素 编辑:程序博客网 时间:2024/05/22 17:50

启动hive的时候出现:

java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected    at jline.TerminalFactory.create(TerminalFactory.java:101)    at jline.TerminalFactory.get(TerminalFactory.java:158)    at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)    at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)    at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)    at org.apache.hadoop.hive.cli.CliDriver.setupConsoleReader(CliDriver.java:787)    at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:721)    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:681)    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:621)    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.main(RunJar.java:212)

原因:

hadoop的jline版本跟hive版本不一致,因为jline是hive连接hadoop必要工具,所以需要将jline更新到与hive版本一致即可,在HIVE_HOME/lib下有jline包,复制到HADOOP_HOME/share/hadoop/yarn/lib下,步骤:

1、复制jline

# cp /home/apache-hive-1.2.1/lib/jline-2.12.jar /home/hadoop-2.5.1/share/hadoop/yarn/lib/

2、启动hive

阅读全文
0 0
原创粉丝点击