一、Derby
元数据使用之前,要在hive目录下执行schematool命令,进行初始化设置
bin/schematool -dbType derby -initSchema
启动hive后,可以用 jps -ml 命令看到一个CliDriver的进程
问题:derby数据库不与其他客户端共享数据,就是说不能多窗口访问。
二、Mysql数据库
安装完 mysql数据库后一定不要忘记初始化
mysqld --initalize --user=mysql
启动服务器后再登录
systemctl start mysqld
还需要将mysql的驱动包导入到hive的lib目录下
再去通过hive-site.xml文件,配置metastore到mysql
配置文件如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<!-- Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<!-- Hive元数据存储的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!-- 元数据存储授权 -->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
</configuration>
配置完hive-site.xml文件后,就可以登录mysql创建metastore数据库,
这个时候登录hive,初始化bin/schematool -initSchema -dbType mysql -verbose
这个时候就建立完成了。
但是:直连模式在生产环境下是非常不可取的,所以我们会选择最后一种模式
三、MetaStore Server
元数据服务模式:直白的说就是在mysql之前建立了一个server去管理,避免直接访问。
在服务器端启动一个metaStore服务,客户就会利用 Trift 协议通过MetaStore服务访问元数据库。
使用之前 要通过配置文件 hive-site.xml 部署一下元数据服务
<!-- 指定存储元数据要连接的地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop102:9083</value>
</property>
这个时候,通过下面的命令就可以启动元数据服务了
(元数据服务是堵塞式的)
bin/hive --service metastore
标签:数据服务,数据库,hive,server,metastore,Hive,mysql,metaStore,javax From: https://www.cnblogs.com/august888-yang/p/17146665.html