Hive元数据的解析
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元数据服务
<?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 &