복붙노트

[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. ==============================

    1.나는 같은 문제가 있었고이 링크에서 작동하도록했습니다 :

    나는 같은 문제가 있었고이 링크에서 작동하도록했습니다 :

    https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

    따라서 다음 단계를 따라야합니다.

  2. ==============================

    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. ==============================

    3.방금

    방금

    HADOOP_USER_CLASSPATH_FIRST=true
    

    이 문제에 대해서는 저에게 도움이됩니다.

  4. ==============================

    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. ==============================

    5.나는 cloudera CDH5.4와 동일한 문제가있었습니다. yarn / libs 폴더에서 jline-0.9.94.jar을 삭제하면 저에게 효과적이었습니다.

    나는 cloudera CDH5.4와 동일한 문제가있었습니다. yarn / libs 폴더에서 jline-0.9.94.jar을 삭제하면 저에게 효과적이었습니다.

  6. ==============================

    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. ==============================

    7.이렇게하면 jline을 찾습니다.

    이렇게하면 jline을 찾습니다.

    jline-0.9.94.jar 파일은 3 개 위치에 있으며 3 개 위치에서 삭제하고 필요한 내보내기를 수행합니다.

    $ export HADOOP_USER_CLASSPATH_FIRST=true
    
  8. ==============================

    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. ==============================

    9.이 링크를 클릭하면 도움이 될 것입니다. CLI에서 하이브를 실행하는 동안 발생하는 문제

    이 링크를 클릭하면 도움이 될 것입니다. CLI에서 하이브를 실행하는 동안 발생하는 문제

  10. ==============================

    10.hadoop 라이브러리를 초기화해야합니다 :

    hadoop 라이브러리를 초기화해야합니다 :

    $ vi ~/.bashrc
    $ export HADOOP_USER_CLASSPATH_FIRST=true
    $ source .bashrc
    $ hive
    
  11. ==============================

    11.나는 이름을 바꿨다.

    나는 이름을 바꿨다.

    addJava "-Djline.terminal = jline.UnixTerminal"

    addJava "-Djline.terminal = jline2.UnixTerminal"

    "activator"파일에서

  12. from https://stackoverflow.com/questions/28997441/hive-startup-error-terminal-initialization-failed-falling-back-to-unsupporte by cc-by-sa and MIT license