hive的metastore服务不开启,依然可以连接使用Mysql数据库中的元数据!
Posted 大数据honry2022
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive的metastore服务不开启,依然可以连接使用Mysql数据库中的元数据!相关的知识,希望对你有一定的参考价值。
我之前有一个疑惑就是,为什么hive的metastore服务没有开启,我依然可以通过连接hiveserver2来连接mysql数据库去访问hive所需要的元数据?
后来才突然明白了hiveserver2和metasore的配置文件都在同一个hive-site.xml中进行配置的,我把hive默认的Derby数据库改成了Mysql数据库来存储hive需要的元数据,将连接Mysql的四要素(URL、Driver、User、PassWord)配置到了hive-site.xml当中就可以连接MySQL了。因为我们在hive-site.xml中有了MySQL的访问四要素,所以我们不用开启metastore服务,客户端直接连接hiveserver2依然是可以访问到Mysql数据库获取hive需要的元数据,用来操作hive。
但是我们仔细回想一下, 虽然我们配置了MySQL的连接四要素可以直接通过连接hiveserver2来连接MySQL数据库来获取hive所需要的元数据,那如果我们没有开启metastore服务会怎么样?
这样就会存在一个潜在的问题,如果不开启metastore服务,将无法监视和管理元数据的一致性和完整性,也无法提供元数据的并发控制和事务管理功能,因此建议始终开启hive的metastore服务来管理hive元数据!
hive开启metastore服务
我们必须在hive服务端才能开启hive metastore服务第一种方式
hive --service metastore -p 9083 &
第二种方式
如果你在hive-site.xml里指定了hive.metastore.uris的port
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop003:9083</value>
</property>
就可以不指定端口启动了
hive --service metastore
以上是关于hive的metastore服务不开启,依然可以连接使用Mysql数据库中的元数据!的主要内容,如果未能解决你的问题,请参考以下文章