[HADOOP] 하이브 시작 - [ERROR] 터미널 초기화에 실패했습니다. 지원되지 않는 상태로 떨어지는
HADOOP하이브 시작 - [ERROR] 터미널 초기화에 실패했습니다. 지원되지 않는 상태로 떨어지는
하이브를 다운로드하고 HADOOP_HOME을 (를) 수정했습니다.
HADOOP_HOME=${bin}/../../usr/local/hadoop
내 실제 경로가 있습니다.
/usr/local/hadoop
.bashrc에 다음 env 변수를 추가했습니다.
export HIVE_HOME=/usr/lib/hive/apache-hive-1.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/local/Hadoop/lib/*:.
export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.
다음 빈 / 하이브 사용하여 하이브 시작 시도했다. 아래 오류가 있습니다.
Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-jdbc-1.1.0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
[ERROR] Terminal initialization failed; falling back to unsupported
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.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
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)
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
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)
해결법
-
==============================
1.나는 같은 문제가 있었고이 링크에서 작동하도록했습니다 :
나는 같은 문제가 있었고이 링크에서 작동하도록했습니다 :
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
따라서 다음 단계를 따라야합니다.
-
==============================
2.$ HADOOP_HOME / share / hadoop / yarn / lib / jline-0.9.94.jar 경로 아래의 jline-0.9.94.jar 파일을 제거한 후에 시도하십시오.
$ HADOOP_HOME / share / hadoop / yarn / lib / jline-0.9.94.jar 경로 아래의 jline-0.9.94.jar 파일을 제거한 후에 시도하십시오.
다음은 jira 티켓에 대한 링크입니다. https://issues.apache.org/jira/browse/HIVE-8609
-
==============================
3.방금
방금
HADOOP_USER_CLASSPATH_FIRST=true
이 문제에 대해서는 저에게 도움이됩니다.
-
==============================
4.이 파일 중 하나를 삭제하려고 시도하십시오.
이 파일 중 하나를 삭제하려고 시도하십시오.
SLF4J : [jar : file : /usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar! /org/slf4j/impl/StaticLoggerBinder.class]의 바인딩이 발견되었습니다.
SLF4J : [jar : file : /usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-jdbc-1.1.0-standalone.jar! / org / slf4j / impl / StaticLoggerBinder에 바인딩이 있습니다. 수업]
그렇다면 나는 그것이 단지 하나에 묶는 것을 선택할 것이라고 생각합니다. 여러 바인딩은 더 이상 사용할 수 없습니다.
-
==============================
5.나는 cloudera CDH5.4와 동일한 문제가있었습니다. yarn / libs 폴더에서 jline-0.9.94.jar을 삭제하면 저에게 효과적이었습니다.
나는 cloudera CDH5.4와 동일한 문제가있었습니다. yarn / libs 폴더에서 jline-0.9.94.jar을 삭제하면 저에게 효과적이었습니다.
-
==============================
6.Hadoop 버전 2.4.1 및 Hive 1.2.0. 나는 같은 문제가 있었다. .bashrc에서 HADOOP_USER_CLASSPATH_FIRST = true로 설정 한 후
Hadoop 버전 2.4.1 및 Hive 1.2.0. 나는 같은 문제가 있었다. .bashrc에서 HADOOP_USER_CLASSPATH_FIRST = true로 설정 한 후
그것은 매력처럼 일했다! !!
-
==============================
7.이렇게하면 jline을 찾습니다.
이렇게하면 jline을 찾습니다.
jline-0.9.94.jar 파일은 3 개 위치에 있으며 3 개 위치에서 삭제하고 필요한 내보내기를 수행합니다.
$ export HADOOP_USER_CLASSPATH_FIRST=true
-
==============================
8.Hive (1.2.1)의 새 버전에서는 jline-2.12.jar을 installation / lib 폴더의 jline-2.13.jar로 대체해야했습니다.
Hive (1.2.1)의 새 버전에서는 jline-2.12.jar을 installation / lib 폴더의 jline-2.13.jar로 대체해야했습니다.
-
==============================
9.이 링크를 클릭하면 도움이 될 것입니다. CLI에서 하이브를 실행하는 동안 발생하는 문제
이 링크를 클릭하면 도움이 될 것입니다. CLI에서 하이브를 실행하는 동안 발생하는 문제
-
==============================
10.hadoop 라이브러리를 초기화해야합니다 :
hadoop 라이브러리를 초기화해야합니다 :
$ vi ~/.bashrc $ export HADOOP_USER_CLASSPATH_FIRST=true $ source .bashrc $ hive
-
==============================
11.나는 이름을 바꿨다.
나는 이름을 바꿨다.
addJava "-Djline.terminal = jline.UnixTerminal"
에
addJava "-Djline.terminal = jline2.UnixTerminal"
"activator"파일에서
from https://stackoverflow.com/questions/28997441/hive-startup-error-terminal-initialization-failed-falling-back-to-unsupporte by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop에서 hcatalog의 사용은 무엇입니까? (0) | 2019.07.06 |
---|---|
[HADOOP] Hadoop의 데이터 복제 오류 (0) | 2019.07.06 |
[HADOOP] Spark 버전 확인 방법 [닫힘] (0) | 2019.07.06 |
[HADOOP] Spark 2.0은 'DirectParquetOutputCommitter'를 사용하지 않습니다. 어떻게 사용하지 않고 살 수 있습니까? (0) | 2019.07.06 |
[HADOOP] 하위 쿼리를 작성하고 하이브에서 "In"절을 사용하는 방법 (0) | 2019.07.06 |