Проблема авторизации Fiware Cosmos Hive

Я использую общий экземпляр Fiware Cosmos (то есть у меня нет привилегий root). До сегодняшнего дня я успешно обрабатывал и управлял таблицами в hive как с помощью 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. Если я тогда попытаюсь получить доступ к Hive удаленно, я получу это:

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

Я не делал никаких изменений в коде или командах до того, как появились ошибки, и после поиска, я не нашел никаких рабочих решений.

Если кто-нибудь может подсказать мне, где проблема, или как ее найти, или даже лучше, как ее решить, я был бы благодарен.

Заранее спасибо!

2 ответа

Решение

Причиной этих проблем стали улучшения Улья в Космосе. Более подробное объяснение и решение можно найти здесь:

Мой клиент Hive перестал работать с экземпляром Cosmos

HiveServer2 (служба Hive JDBC) - очень нестабильная часть программного обеспечения. В нашем кластере Prod у нас есть задание CRON для перезапуска каждого экземпляра каждый день, и даже в этом случае иногда он выдает ошибки OutOfMemory, а затем просто зависает, говоря Connection refused как ты показываешь. Откройте тикет своему администратору Hadoop, чтобы он / она возобновил проклятый сервис.

С другой стороны, org.apache.hadoop.log.metrics.EventCounter сообщение пахнет так, как будто кто-то пытался изменить общую конфигурацию где-то (или пытался обновить некоторые JAR-файлы), и теперь Hive считает, что оно работает на очень, очень старой версии Hadoop

=> например, комментарии в Hive-4133 или что пост поддержки MapR

Другие вопросы по тегам