복붙노트

[HADOOP] Fiware Cosmos Hive 인증 문제

HADOOP

Fiware Cosmos Hive 인증 문제

Fiware Cosmos의 공유 인스턴스를 사용하고 있습니다 (루트 권한이 없음을 의미 함). 나는 오늘까지 jdbc와 Hive CLI를 사용하여 원격으로 하이브에서 테이블을 성공적으로 액세스하고 관리했습니다. 그러나 이제 Hive CLI를 시작할 때이 오류가 발생합니다.

log4j:ERROR Could not instantiate class [org.apache.hadoop.hive.shims.HiveEventCounter].
java.lang.RuntimeException: Could not load shims in class org.apache.hadoop.log.metrics.EventCounter
    at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:123)
    at org.apache.hadoop.hive.shims.ShimLoader.loadShims(ShimLoader.java:115)
    at org.apache.hadoop.hive.shims.ShimLoader.getEventCounter(ShimLoader.java:98)
    at org.apache.hadoop.hive.shims.HiveEventCounter.<init>(HiveEventCounter.java:34)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:357)
    at java.lang.Class.newInstance(Class.java:310)
    at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:330)
    at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:121)
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:664)
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440)
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:476)
    at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:354)
    at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jDefault(LogUtils.java:127)
    at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:77)
    at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:58)
    at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:641)
    at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.log.metrics.EventCounter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:171)
    at org.apache.hadoop.hive.shims.ShimLoader.createShim(ShimLoader.java:120)
    ... 27 more
log4j:ERROR Could not instantiate appender named "EventCounter".

Logging initialized using configuration in jar:file:/usr/local/apache-hive-0.13.0-bin/lib/hive-common-0.13.0.jar!/hive-log4j.properties

그러나 Hive CLI에서 select and create를 수행 할 수 있습니다. 그런 다음 Hive에 원격으로 액세스하려고하면 다음과 같은 결과가 나타납니다.

Connecting to jdbc:hive://x.x.x.x:10000/default?user=user&password=XXXXXXXXXX
Could not establish connection: java.net.ConnectException: Connection refused

오류가 나타나기 전에 코드 또는 명령을 변경하지 않았으며 인터넷 검색 후 작동하는 솔루션을 찾지 못했습니다.

누구든지 문제가있는 곳이나 문제를 찾는 방법 또는 더 나은 방법으로 나를 안내 할 수 있다면 감사 할 것입니다.

미리 감사드립니다!

해결법

  1. ==============================

    1.HiveServer2 (Hive JDBC 서비스)는 매우 불안정한 shoftware입니다. Prod 클러스터에는 매일 각 인스턴스를 다시 시작하는 CRON 작업이 있으며 때로는 OutOfMemory 오류가 발생하여 Connection이 거부 한 것처럼 표시되지 않습니다. Hadoop 관리자에게 티켓을 열어 망할 서비스를 취소하십시오.

    HiveServer2 (Hive JDBC 서비스)는 매우 불안정한 shoftware입니다. Prod 클러스터에는 매일 각 인스턴스를 다시 시작하는 CRON 작업이 있으며 때로는 OutOfMemory 오류가 발생하여 Connection이 거부 한 것처럼 표시되지 않습니다. Hadoop 관리자에게 티켓을 열어 망할 서비스를 취소하십시오.

    반면에 org.apache.hadoop.log.metrics.EventCounter 메시지는 누군가가 공유 구성을 변경하려고 시도했거나 일부 JAR을 업그레이드하려고 시도한 것처럼 냄새가 났으며 이제는 Hive가 매우 오래된 버전에서 실행되고 있다고 생각합니다 하둡

    => 예 : Hive-4133의 의견 또는 해당 MapR 지원 게시물

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

    2.이러한 문제의 원인은 Cosmos의 Hive 업그레이드였습니다. 더 자세한 설명과 해결책은 여기에 있습니다.

    이러한 문제의 원인은 Cosmos의 Hive 업그레이드였습니다. 더 자세한 설명과 해결책은 여기에 있습니다.

    Hive 클라이언트가 Cosmos 인스턴스 작업을 중단했습니다

  3. from https://stackoverflow.com/questions/32120317/fiware-cosmos-hive-authorization-issue by cc-by-sa and MIT license