CDH配置单元提升:无法实例化org.apache.hadoop.Hive.ql.metadata.SessionHiveMetaStoreClient

CDH配置单元提升:无法实例化org.apache.hadoop.Hive.ql.metadata.SessionHiveMetaStoreClient,hive,cloudera,Hive,Cloudera,我在两台服务器上安装了CDH 6.2,device1是主服务器。 然而,当我运行配置单元命令行时,CM web UI中没有任何错误:showdatabaes在device1中,出现如下异常: dennis@device1:~$ hive /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 24: /opt/cloudera/parcels/CDH-6.2.0-1.c

我在两台服务器上安装了CDH 6.2,device1是主服务器。 然而,当我运行配置单元命令行时,CM web UI中没有任何错误:
showdatabaes在device1中,出现如下异常:

dennis@device1:~$ hive
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 24: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-hadoop2-compat.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 25: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/lib/htrace-core.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 26: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-common.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 27: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-server.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 28: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-hadoop-compat.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hive/conf/hive-env.sh: line 29: /opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-protocol.jar: Permission denied
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hadoop/libexec/hadoop-functions.sh: line 2331: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER: bad substitution
/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/../lib/hadoop/libexec/hadoop-functions.sh: line 2426: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS: bad substitution
WARNING: Use "yarn jar" to launch YARN applications.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/jars/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/jars/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]

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/jars/hive-common-2.1.1-cdh6.2.0.jar!/hive-log4j2.properties Async: false

WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> show databases;
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
hive> 

但是,当我运行配置单元命令行时,device2上没有任何异常。
此外,在
Hue

上也很正常,您的设备上可能没有配置单元服务的网关1,只有在您的设备2上,它可能也有配置单元元存储。另见(我的重点):

由于配置单元服务没有工作角色,因此需要另一种机制来支持将客户端配置传播到集群中的其他主机。在Cloudera Manager中,网关角色实现此功能。无论是在安装时还是以后添加配置单元服务,请确保将网关角色分配给群集中的主机如果您没有网关角色,则不会部署客户端配置。

您的设备1没有客户端配置,因此无法与配置单元元存储建立连接

您还应该检查在复制的输出开始时收到的错误消息(我的重点):

/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin//lib/hive/conf/hive-env.sh:line 24:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-hadoop2-compat.jar:权限被拒绝

配置单元用户无法访问某些目录可能存在权限问题

最后一点是,你应该切换到直线。由于输出中的以下消息显示,不建议使用配置单元CLI:

警告:不推荐使用配置单元CLI,建议迁移到直线

另请参见Cloudera fom 2014的指南:

最近,Hive社区(由Cloudera工程师负责)推出了HiveServer2,这是一款增强的HiveServer2,专为多客户端并发和改进的身份验证而设计,它还为通过JDBC和ODBC连接的客户端提供了更好的支持。现在,建议使用以Beeline作为命令行界面的HiveServer2;HiveServer1和Hive CLI已被弃用,后者甚至不能与HiveServer2一起使用


感谢Secespitus,我通过将device1上的hive-site.xml更改为默认配置解决了这个问题,因为我之前在没有通知的情况下修改了配置。现在我对权限问题感到困惑。在I chmod 777到hbase-hadoop2-compat.jar之后,在启动hive cli:/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0/lib/hbase/hbase-hadoop2-compat.jar时出现了混乱的代码:第1行:$'PK\003\004':未找到命令/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-hadoop2-compat.jar:第2行:未找到命令ᤲ,Jψ,K-䣖+9RKRSt*-6.2.0-1.cdh6.2.0.p0.967373/lib/hbase/hbase-hadoop2-compat.jar:第3行:J6nN¥o·META-INF/MANIFEST。MF@DennisLi这看起来确实很混乱。我现在不知道到底是什么问题。有些文件似乎丢失了。一般来说,使用“chmod 777”不是一个好主意。相反,您应该检查设备1和设备2之间存在哪些差异。所有错误消息中引用的文件及其所在的目录具有哪些权限?两个系统上是否都存在这些问题?这两台服务器之间是否存在任何其他差异,例如安装了不同的服务(网关、Hive-Server2、Hive MetaStore等)?@DennisLi您应该检查beeline而不是Hive CLI是否存在相同的问题。如果那个老家伙现在有一些非常奇怪的问题,我也不会感到惊讶。但是在执行“show databases;”时是否仍然会收到错误消息?与使用beeline运行时一样。现在执行“显示数据库”时没有错误:)