Мы столкнулись с проблемой, связанной с 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. Любая помощь будет оценена.
Заранее спасибо.