在我们的一个cloudera集群中,我们面临有关Beeline CLI的问题。我们正在尝试使用beeline CLI连接和执行hql文件,这些文件是alter语句,如下所示,但由于以下错误而失败。
[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”(不推荐使用)的连接,该连接没有任何问题。我们需要使用带有“ -u”和“ -f”参数的直线。
集群信息:
我们已经验证了“ HiveServer2”,“ HiveMetastore”服务以及相关端口和Web UI端口,所有功能均正常运行。
在此集群的初始设置期间,由于/ 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"
请让我们知道beeline使用-u和-f参数需要做些什么。任何帮助将不胜感激。
谢谢。
答案 0 :(得分:0)
因此,您要说的是使用“直线”进行连接,而使用“直线-u xxx -f yyy却没有。
查看您的日志,似乎是因为它的用户名和密码。
你能尝试这样的事情吗
beeline -u jdbc:hive2://hostname.domain.dom:10000 -n <yourname> -p <yourpassword> -f <filename.hql>
答案 1 :(得分:0)
它不适用于CDH47。它与CDH514版本一起使用。没关系。我们可以用Hive shell做到