您的位置:首页 > 数据库 > MySQL

hive使用mysql作为元数据库启动报错分析

2017-07-12 13:38 633 查看
    hive的元数据库默认是derby,一次只能打开一个会话;若要支持多个用户同时访问,则需要选择一个独立的元数据库,常见的都选择mysql。

我用的是root用户连接mysql,我已经授权所有ip都可以访问,并且flush privilegesle;没有设置密码,所以在配置文件中密码部分我直接什么都没填,但是

一、

1.启动日志报错如下:java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES

2.hive shell控制台报错如下:

     ERROR ql.Driver (SessionState.java:printError(419)) - 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


控制台报的错是不能初始化元数据库,日志报的错是密码不正确,难道必须设置有密码吗?我在网上搜到的解决办法都是将hive.metastore.schema.verification设置为fasle,还有将mysql 设置set global binlog_format='MIXED';我试了都不行,那我干脆把mysql  root用户设为有密码的,我设为123456 。 启动hive又出现新的错误

二、

1.启动日志报错如下:

  ERROR hive.log (MetaStoreUtils.java:logAndThrowMetaException(960)) - Got exception: java.net.ConnectException Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException:
拒绝连接

java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: 拒绝连接


2..hive shell控制台报错如下:

     ERROR ql.Driver (SessionState.java:printError(419)) - 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

控制台报的错都一样,不好找原因,所以还是看启动日志,具体问题具体分析,启动日志默认在/tmp/${user.name}/hive.log,9000这个端口是我hdfs的端口,难道运行hive必须先启动hadoop吗?有的人说必须先启动hadoop,有的说不用。我也晕了,反正我启动了hadoop后,再运行hive,进入shell后,输入show tables;成功了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hive hadoop 数据库 mysql