hive metastore mysql_Hive MetaStore的结构
时间: 2024-03-29 08:38:04 浏览: 175
Hive MetaStore是一个关系型数据库,用于存储Hive元数据,包括数据库、表、分区等信息。常见的Hive MetaStore数据库包括MySQL、PostgreSQL和Derby等。如果使用MySQL作为Hive MetaStore数据库,它的结构如下:
1. 数据库:默认名为metastore,默认字符集为UTF-8。
2. 表:存储Hive元数据的表有很多,包括TBLS、DBS、PARTITIONS等。其中,TBLS表存储表的基本信息,DBS表存储数据库的基本信息,PARTITIONS存储分区信息。
3. 列:每个表都有自己的列,这些列存储了表的各种属性,包括表名、列名、列数据类型、分区信息、表的所有者等。
4. 索引:Hive MetaStore数据库中的一些表会建立索引,以提高查询效率。例如,PARTITIONS表会建立基于分区键的索引。
总之,Hive MetaStore是一个非常重要的组件,它存储了Hive的元数据,对于Hive的正常运行非常关键。
相关问题
hive metastore
### Hive Metastore 配置与使用指南
#### 1. Hive Metastore 的安装配置
为了使 Hive 能够存储元数据,在安装过程中需确保 `<value>` 标签内的连接 URL、驱动程序类名、用户名和密码被替换为实际使用的 MySQL 数据库的具体参数[^1]。
对于 MySQL 数据库的集成部分,通常是在 `hive-site.xml` 文件中完成设置。以下是该文件的部分配置示例:
```xml
<configuration>
<!-- MySQL JDBC URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value>
</property>
<!-- MySQL Driver Class Name -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- Database Username and Password -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>your_username</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>your_password</value>
</property>
</configuration>
```
#### 2. 启动 Hive Metastore 服务
当上述配置完成后,可以通过命令行来启动 Hive Metastore 服务:
```bash
hive --service metastore &
```
这条指令会在后台启动 Hive Metastore 服务进程。
#### 3. 使用 Hive CLI 或其他客户端访问 Hive
一旦 Hive Metastore 成功启动并运行正常,则可以借助 Hive 提供的各种接口(如 CLI 工具)来进行 SQL 查询和其他操作了。
#### 4. Flink 和 Hive Metastore 的集成注意事项
如果计划让 Apache Flink 应用程序能够利用 Hive Metastore 来管理表结构等信息的话,需要注意的是直接下载官方版本可能并不适用于所有环境尤其是云平台上的部署方案比如 Amazon Web Services (AWS) Elastic MapReduce (EMR),这是因为 EMR 对某些组件进行了定制化调整因此建议优先考虑从现有集群环境中获取带有特定标记(`amzn`)前缀的 JAR 文件用于兼容性保障[^2]。
#### 5. Spark 访问 Hive Metastore 的额外设定
为了让 Spark 可以顺利读取由 Hive 维护的数据字典,除了常规依赖项外还需要指定两个重要属性给 Spark,默认情况下这些选项应该放在 `$SPARK_HOME/conf/spark-defaults.conf` 文件里:
- 设置 Hive 版本号对应于当前所使用的 Hive 发布版;
- 明确指出包含有必要的 Hive 类库路径以便加载相应的 Java Archive(JAR) 文件[^3]。
```properties
spark.sql.hive.metastore.version=2.1.1
spark.sql.hive.metastore.jars=/opt/hive-2.1.1/lib/*
```
初始化hive metastore
在初始化Hive Metastore之前,需要确保以下条件已满足:
1.已安装Hadoop和Hive。
2.已创建HDFS用户和组。
以下是初始化Hive Metastore的步骤:
1.创建Hive Metastore数据库。可以使用MySQL或PostgreSQL作为Hive Metastore的数据库。使用以下命令创建MySQL数据库:
```
mysql -u root -p
create database metastore;
grant all privileges on metastore.* to 'hiveuser'@'localhost' identified by 'password';
flush privileges;
exit;
```
2.在Hive配置文件hive-site.xml中设置Hive Metastore的JDBC连接URL和数据库用户名和密码。
```
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
<description>password to use against metastore database</description>
</property>
```
3.运行Hive Metastore初始化脚本。使用以下命令运行脚本:
```
schematool -dbType mysql -initSchema
```
4.启动Hive服务,并测试Hive Metastore是否能正常工作。
```
hive --service metastore &
```
以上是初始化Hive Metastore的基本步骤。可以根据实际情况进行调整。
阅读全文
相关推荐

















