在跟着Hive安装教程时,启动Hive失败,元数据的初始化有问题。我猜测这是因为教程使用的为较旧的MySQL5,而我安装的是MySQL8。虽然跟着这份教程也有几个地方需要做出改动,比如驱动的版本需要更新、mysql的语法不同等,但网络上都能找到答案。这个问题没在网络上找到答案,探索解决之后特此记录。
报错如下:
1 | Logging initialized using configuration in jar:file:/opt/app/hive-2.1.1/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true |
执行命令schematool -dbType mysql -initSchema
会显示失败。这提醒了我,是不是下面的几项配置之一有问题?
仔细观察/usr/local/hive/conf/hive-site.xml
,发现里面有关于账号和密码的配置。因为mysql中设定的密码和配置文件中写的密码不一致,才会访问不上hive数据库。
因此到mysql下,修改hive用户的密码为hive。
1 | alter user 'hive'@'localhost' identified with mysql_native_password by 'hive'; |
1 | flush privileges; |
同时还要注意上面的/usr/local/hive/conf/hive-site.xml
文件中,ConnectionDriverName要改成与MySQL8适配,即加上中间的cj.
再次执行命令schematool -dbType mysql -initSchema
。显示成功。
hive也能成功启动了!