Hive启动后,执行SQL报如下的错:
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
根据提示:无法启动元数据服务。
方向一:尝试重新初始化元数据(该方法无效,看方向二)
1.删除mysql中的matestore库:
mysql -uroot -p123456 drop database matestore; create database matestore;
2.执行初始化命令:
schematool -initSchema -dbType mysql -verbose
初始化成功。
3.尝试在hive客户端使用SQL看是否报错:
bin/hive show databses;
结果:依然报错,报同样的错。
分析:初始化成功了,检查hive-site.xml也没有问题。根据报错,是元数据服务没有启动,尝试手动启动该服务。
方向二:手动启动hive的元数据服务:
hive --service metastore
hive客户端尝试SQL语句,可以使用,已解决。
另:hiveserver2启动命令,用于jdbc连接:
bin/hive --service hiveserver2
注:matestore服务需要在hive-site.xml文件中做如下配置:
<!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop102:9083</value> </property>
注:hiveserver2服务需要在hive-site.xml文件中做如下配置:
<!-- 指定hiveserver2连接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop102</value> </property> <!-- 指定hiveserver2连接的端口号 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property>