Билайн - нет текущего соединения - по умолчанию не найдена конфигурация соединения hs2 - PullRequest
1 голос
/ 09 июня 2019

Мы столкнулись с проблемой, связанной с CLI Beeline в одном из наших кластеров Cloudera. Мы пытаемся подключиться и выполнить hql-файлы, которые представляют собой операторы alter, используя интерфейс командной строки beeline, как показано ниже, и это приводит к ошибке из-за следующих ошибок.

[srvcacc@hostname ~]$ beeline -u jdbc:hive2://hostname.domain.dom:10000 --verbose=true --showWarnings=true
WARNING: Use "yarn jar" to launch YARN applications.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/hive/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/zookeeper/lib/slf4j-log4j12-1.7.25.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.apache.logging.slf4j.Log4jLoggerFactory]
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show Log4j2 internal initialization logging.
Beeline version 2.1.1-cdh6.1.1 by Apache Hive
Default hs2 conection config file not found
0: jdbc:hive2://hostname.domain.dom:10000> show databases;
No current connection
0: jdbc:hive2://hostname.domain.dom:10000>

Мы попробовали подключение, используя следующие методы в beeline, из 2 методов 1 из них дает сбой, а другой работает.

Первый метод:

[srvcacc@hostname ~]$ beeline -u jdbc:hive2://hostname.domain.dom:10000

Второй метод:

[srvcacc@hostname ~]$ beeline
WARNING: Use "yarn jar" to launch YARN applications.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/hive/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/lib/zookeeper/lib/slf4j-log4j12-1.7.25.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.apache.logging.slf4j.Log4jLoggerFactory]
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show Log4j2 internal initialization logging.
Beeline version 2.1.1-cdh6.1.1 by Apache Hive
beeline> !connect jdbc:hive2://hostname.domain.dom:10000
Connecting to jdbc:hive2://hostname.domain.dom:10000
Enter username for jdbc:hive2://hostname.domain.dom:10000:
Enter password for jdbc:hive2://hostname.domain.dom:10000:
Connected to: Apache Hive (version 2.1.1-cdh6.1.1)
Driver: Hive JDBC (version 2.1.1-cdh6.1.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hostname.domain.do>

первый способ не работает в связи со следующей ошибкой

Default hs2 conection config file not found
0: jdbc:hive2://hostname.domain.dom:10000> show databases;
No current connection

второй способ подключается без ошибок.

Мы попытались установить соединение, используя параметр -d с явным упоминанием драйвера "org.apache.hive.jdbc.HiveDriver", и даже это выдает ту же ошибку, что и "Конфигурация соединения hs2 по умолчанию не найдена". Мы также попытались установить соединение с «Hive CLI» (устарело), ​​которое работает без каких-либо проблем. Нам необходимо использовать beeline с параметрами «-u» и «-f».

Информация о кластере:

  • 5 узлов (один главный узел и 4 узла данных) с CDH версии 6.1.1 на RHEL 7.5
  • HiveServer2, Hive Metastore и сервер webHcat находятся на одном сервере (главный узел)
  • Подключение к кусту не имеет механизма аутентификации.

Мы проверили службы "HiveServer2", "HiveMetastore" и соответствующие порты и порты веб-интерфейса. Все работает без каких-либо проблем.

Во время первоначальной настройки этого кластера из-за того, что политики безопасности с / tmp имеют конфигурацию «noexec», нам пришлось изменить указанные ниже конфигурации с явным упоминанием «-Djava.io.tmpdir = / var / log /». cloudera-scm-server / yarntemp "(где" / var / log / cloudera-scm-server "- отдельная точка монтирования с разрешениями 775)

YARN configuration

1. ApplicationMaster Java Opts Base
2. Java Configuration Options for JobHistory Server
3. Java Configuration Options for NodeManager
4. Java Configuration Options for ResourceManager

Cloudera Manager --> YARN --> search for: Gateway Client Environment Advanced Configuration Snippet (Safety Valve) for hadoop-env.sh and add this:
HADOOP_CLIENT_OPTS="-Djava.io.tmpdir=/var/log/cloudera-scm-server/yarntemp"

ссылка: https://community.cloudera.com/t5/Cloudera-Manager-Installation/Problem-starting-a-nodemanager/td-p/27658

Пожалуйста, сообщите нам, что нужно сделать, чтобы beeline работал с параметрами -u и -f. Любая помощь будет оценена.

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

1 Ответ

0 голосов
/ 10 июня 2019

Итак, вы пытаетесь сказать, что при использовании соединения "beeline" и использовании "beeline -u xxx -f yyy это не так.

Глядя на ваши журналы, кажется, что это имя пользователя ипароль.

Можете ли вы попробовать что-то вроде этого

beeline -u jdbc:hive2://hostname.domain.dom:10000 -n <yourname> -p <yourpassword> -f <filename.hql>
...