当前位置: 首页 > 知识库问答 >
问题:

启动配置单元元存储

阴凯歌
2023-03-14

我们正试图在Linux服务器上启动hive元存储,但我们面临一个问题。如果我们尝试使用以下命令启动配置单元元存储服务:

sudo hive服务转移

我们会遇到很多这样的错误:

原因:java.sql。SQLException:拒绝用户“hive”@“sandbox.hortonworks的访问。com“(使用密码:YES)在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:935)在com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4101)在com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.doHandshake java:1300)com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2337)at com.mysql.jdbc.ConnectionImpl.connectoneryonly(ConnectionImpl.java:2370)at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)at com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:792)at com.mysql.jdbc.jdbc.JDBC4Connection。(JDBC4Connection.java:49)at sun.reflect.NativeConstructorAccessorImpl。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 com.mysql.jdbc.Util.HandleneInstance(Util.java:411)at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)在java.sql.DriverManager.getConnection(DriverManager.java:582)在java.sql.DriverManager.getConnection(DriverManager.java:154)在com.jolbox.bonecp.bonecp.obtainRawInternalConnection(bonecp.java:254)在com.jolbox.bonecp.bonecp

我们还尝试重置用户配置单元的密码,但没有帮助。

我们要启动hive-metastore的原因是端口9083没有监听我们的服务器。我们也不知道为什么metastore-service在服务器重新启动后不再运行。

如果您知道任何其他命令来重新启动蜂巢转移或任何其他可能的解决方案,请告诉我。

提前感谢

编辑:我显示了用户配置单元的授权:

mysql> show grants for 'hive'@'sandbox.hortonworks.com';
+--------------------------------------------------------------------------------+
| Grants for hive@sandbox.hortonworks.com                                        |
+--------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'hive'@'sandbox.hortonworks.com'                |
| GRANT ALL PRIVILEGES ON `metastore`.* TO 'hive'@'sandbox.hortonworks.com'      |
| GRANT ALL PRIVILEGES ON `hive`.`metastore` TO 'hive'@'sandbox.hortonworks.com' |
+--------------------------------------------------------------------------------+
3 rows in set (0.01 sec)

这里我选择了主机用户和mysql.user表的密码。用户蜂巢没有密码!

mysql> select host, user, password from mysql.user;
+-------------------------+------+----------+
| host                    | user | password |
+-------------------------+------+----------+
| localhost               | root |          |
| sandbox.hortonworks.com | root |          |
| 127.0.0.1               | root |          |
| localhost               |      |          |
| sandbox.hortonworks.com |      |          |
| sandbox.hortonworks.com | hive |          |
| localhost               | hive |          |
+-------------------------+------+----------+
7 rows in set (0.01 sec)

编辑:我发现了另一条错误消息:

我用serverip:8080连接到Ambari,并检查了一些服务的状态。如果我尝试手动启动配置单元元存储,则会收到以下错误消息:

Hive Metastore status
CRITICAL: Error accessing Hive Metastore status [14/08/25 04:41:55 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive

该错误发生在启动配置单元服务的4个步骤中的最后一个步骤。步骤“Hive Metastore start”和“Hiveserver 2 start”已经完成,没有出现错误。名为“配置单元检查执行”的步骤失败。以下是标准输出的错误消息:

notice: /Stage[2]/Hdp-hcat::Hcat::Service_check/Exec[hcatSmoke.sh prepare]/returns: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
err: /Stage[2]/Hdp-hcat::Hcat::Service_check/Exec[hcatSmoke.sh prepare]/returns: change from notrun to 0 failed: su - ambari-qa -c 'sh /tmp/hcatSmoke.sh hcatsmokeidd4b2a272_date472514 prepare' returned 1 instead of one of [0] at /var/lib/ambari-agent/puppet/modules/hdp-hcat/manifests/hcat/service_check.pp:54
notice: /Stage[2]/Hdp-hcat::Hcat::Service_check/Hdp-hadoop::Exec-hadoop[hcat::service_check::test]/Hdp::Exec[hadoop --config /etc/hadoop/conf fs -test -e /apps/hive/warehouse/hcatsmokeidd4b2a272_date472514]/Anchor[hdp::exec::hadoop --config /etc/hadoop/conf fs -test -e /apps/hive/warehouse/hcatsmokeidd4b2a272_date472514::begin]: Dependency Exec[hcatSmoke.sh prepare] has failures: true
notice: /Stage[2]/Hdp-hcat::Hcat::Service_check/Hdp-hadoop::Exec-hadoop[hcat::service_check::test]/Hdp::Exec[hadoop --config /etc/hadoop/conf fs -test -e /apps/hive/warehouse/hcatsmokeidd4b2a272_date472514]/Exec[hadoop --config /etc/hadoop/conf fs -test -e /apps/hive/warehouse/hcatsmokeidd4b2a272_date472514]: Dependency Exec[hcatSmoke.sh prepare] has failures: true

烟雾测试有可能有缺陷吗?

共有2个答案

袁安志
2023-03-14

我不知道为什么,但是存储的密码不正确。我做了以下更改和hive metastore和hive工程:

  1. 连接到mysql并执行下一个命令,将配置单元用户密码(原始密码已加密且未知)更改为“密码”:

为'hive'设置密码@'sandbox.hortonworks.com'=PASSWORD('密码');

<代码>

hive--服务元存储

然而,当我重新启动HDP虚拟机时,配置单元元存储不再自动启动。

徐君植
2023-03-14

在mysql中授予hive用户权限

GRANT ALL ON metastore.* TO 'hive'@'sandbox.hortonworks.com';
GRANT ALL ON metastore TO 'hive'@'sandbox.hortonworks.com';
FLUSH PRIVILEGES;
 类似资料:
  • 错误: hive-site.xml

  • 我在我的Ubuntu VM上安装了Hive和Hadoop。 当我在终端上启动时,我会得到以下信息: SLF4J:类路径包含多个SLF4J绑定。slf4j:在[jar:file:/opt/apache-hive-2.3.5-bin/lib/log4j-Slf4j-impl-2.6.2.jar!/org/slf4j/impl/staticloggerbinder.class]中找到绑定slf4j:在[

  • 我不知道在Ubuntu17.04的终端中启动hive时发生了什么,我在终端上出现了一些错误。我是一个新的蜂巢面临一些问题与它,谁能帮助我在这方面。 我已经(在.bashrc文件中安装并指定): Hadoop:2.8.0 SLF4J:类路径包含多个SLF4J绑定。slf4j:在[jar:file:/usr/local/src/hive-2.1.1/lib/log4j-Slf4j-impl-2.4.1

  • 问题: 需要查看任何特定的配置单元属性吗? 请引导我。如有任何帮助,我将不胜感激

  • 我在java中开发了一个工作正常的配置单元udf,我的函数返回输入与配置单元表中列之间的最佳匹配,因此它有以下简化的伪代码: 我的问题是,如果这个函数是由Hive调用的,为什么我需要在代码中连接到Hive?我可以使用使用我的功能的用户所连接的当前连接吗?

  • 我的蜂巢设置有问题。不是我设置的,所以我对这个系统的了解有限...使用cloudera manager完成了自动更新,没有对postgresql数据库进行备份。转移数据库正在使用postgresql设置。 就我的理解,不可能有一个既定的连接,但我不明白为什么,因此如何修复它。我将非常感谢一些关于如何在cloudera manager管理中修复此问题的提示。或如何重建转移或从postgresql切换