FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
在做离线数仓6.0时出现的问题。
在启动hive后打算创建表时出现错误。自查发现是hive缺少了mysql-connector
在hive的lib目录中加上这个jar包即可。
这个jar包可以在你下mysql8时那个目录里找到的。注意是mysql8.0 。离线数仓用的是8.0版本,你跟着尚硅谷的hive课程学的话,那里用的是5.0版本的,版本不一样,要注意。
使用如下这个命令进入数据库,看看有没有
mysql -uroot -p
在使用下面这个命令看看有没有metastore这个数据库,没有的话再创建一个
show databases;
create database metastore;
exit;退出后,在使用下面这个命令刷新mysql
schematool -initSchema -dbType mysql -verbose

可以看到启动hive后再创建表就没问题了。
启动hive有如下提示,说明你的配置文件需要改,不过只是警告,不改也不影响运行
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
出现这个警告的原因是你在hive-site.xml文件中的配置的mysql-connector的版本是5.0的,改成下面这个即可
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
如果还没有解决,那还有两种可能。
一是hive-site.xml配置文件中的mysql密码没有改,在离线数仓里是000000(如果和视频一致的1话),在hive教程里则是123456,如果直接复制hive教程里做好的配置,就有可能出问题。
二,有没有在hdfs里创建这个文件夹
/user/hive/warehouse

我遇到的问题都说出来了。祝代码顺利。
更多推荐
所有评论(0)