Mysql 启动配置单元元存储

Mysql 启动配置单元元存储,mysql,hadoop,hive,hortonworks-data-platform,Mysql,Hadoop,Hive,Hortonworks Data Platform,我们正在尝试在Linux服务器上启动hive metastore,但我们面临一个问题。如果尝试使用以下命令启动配置单元元存储服务: sudo配置单元--服务元存储 我们会遇到很多这样的错误: 原因:java.sql.SQLException:用户'hive'@'sandbox.hortonworks.com'的访问被拒绝(使用密码:是) 位于com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) 在com.mysql.jdbc

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

sudo配置单元--服务元存储

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

原因:java.sql.SQLException:用户'hive'@'sandbox.hortonworks.com'的访问被拒绝(使用密码:是) 位于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.java:1300) 位于com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2337) 位于com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370) 位于com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154) 位于com.mysql.jdbc.ConnectionImpl(ConnectionImpl.java:792) 位于com.mysql.jdbc.JDBC4Connection(JDBC4Connection.java:49) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 位于java.lang.reflect.Constructor.newInstance(Constructor.java:513) 位于com.mysql.jdbc.Util.HandleneInstance(Util.java:411) 位于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.(bonecp.java:305) ... 48多

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

我们希望启动配置单元元存储的原因是,端口9083未在服务器上侦听。我们也不知道为什么metastore服务在服务器重启后不再运行

如果您知道用于重新启动hive metastore的任何其他命令或此问题的任何其他可能解决方案,请告诉我

提前谢谢

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

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个步骤中的最后一个步骤。“配置单元元存储启动”和“配置单元服务器2启动”步骤已完成,没有错误。名为“配置单元检查执行”的步骤失败。以下是标准输出的错误消息:

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

冒烟测试可能有缺陷吗?

在mysql中向配置单元用户授予权限

GRANT ALL ON metastore.* TO 'hive'@'sandbox.hortonworks.com';
GRANT ALL ON metastore TO 'hive'@'sandbox.hortonworks.com';
FLUSH PRIVILEGES;

我不知道为什么,但存储的密码不正确。我做了以下更改,配置单元元存储和配置单元工作:

  • 连接到mysql并执行下一个命令以更改“密码”的配置单元用户密码(原始密码已加密且未知):
  • 为'hive'@'sandbox.hortonworks.com'=密码('PASSWORD')设置密码

  • 将以下内容添加到hive-site.xml
  • 
    javax.jdo.option.ConnectionPassword
    密码
    

  • 启动配置单元元存储
  • 配置单元--服务元存储


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

    检查mysql中“配置单元”用户对“元存储”数据库的权限我在mysql中只有4个数据库。这些信息包括架构、配置单元、mysql和测试。不幸的是,没有“元存储”数据库。我在执行第二个查询时出错。“错误1046(3D000):未选择数据库”检查数据库名称是否为
    metastore
    。检查hive-site.xml以获取数据库名称。在我的hive-site.xml中找不到任何数据库名称。我是否应该将整个hive-site.xml添加到我的帖子中,以便您可以看到其中的内容?编辑:我在MySQL中有4个数据库:信息模式、配置单元、MySQL、测试。我没有名为metastore的数据库。在您的情况下,数据库名称将是
    hive
    。请试试看。