Hive体系结构的元数据(Metastore)是一个重要的组件,保存了Hive有关库、表、存储、分区等信息。元数据主要包括两个方面:一方面是元数据库,最常见的是采用MySQL;另一方面是元数据服务,与其他查询引擎共享,比如Presto或Impala等。
Hive元数据库
Hive支持两种类型的元数据库:
- 本地或嵌入的元数据库:Derby
- 远程的元数据库:MySQL
说明:嵌入的元数据库主要用于单元测试,并且一次只能有一个进程来连接,所以生产环境不推荐使用。实际上,线上使用最多的是采用MySQL作为远程的元数据库。
(1)配置Hive元数据库
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
</configuration>
Hive Metastore
(3)元数据库的表说明
Hive Metastore Tables
Hive元数据服务
尽管Hive元数据服务也支持两种方式,可是生产环境采用的是MySQL作为元数据库,所以这里只介绍远程服务的配置与启动。
(1)配置Hive元数据服务。想系统学习大数据的话,可以加入大数据技术学习交流扣扣君羊:522189307
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>0.0.0.0</value>
</property>
</configuration>
(2)启动Hive元数据服务
hive --service hivestore &