大数据之hive Hive Metastore 存储 MySQL/PostgreSQL 配置

大数据阿木 发布于 4 天前 1 次阅读


Hive Metastore 存储(MySQL/PostgreSQL)配置指南

Hive 是一个建立在 Hadoop 之上的数据仓库工具,它可以将结构化数据文件映射为一张数据库表,并提供简单的 SQL 查询功能。Hive Metastore 是 Hive 的元数据存储服务,它负责存储和管理 Hive 的元数据,如数据库、表、分区、列等。在生产环境中,为了提高性能和可靠性,通常会使用关系型数据库(如 MySQL 或 PostgreSQL)来存储 Hive Metastore 的元数据。

本文将详细介绍如何配置 Hive Metastore 以使用 MySQL 或 PostgreSQL 作为后端存储,包括环境准备、配置步骤和常见问题解决。

环境准备

在开始配置之前,请确保以下环境已经准备就绪:

1. 安装并配置好 Hadoop 集群。

2. 安装并配置好 Hive。

3. 安装并配置好 MySQL 或 PostgreSQL 数据库。

以下以 MySQL 为例进行说明。

安装 MySQL

1. 下载 MySQL 安装包。

2. 解压安装包。

3. 编译安装。

bash

tar -zxvf mysql-5.7.25.tar.gz


cd mysql-5.7.25


cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc/mysql -DWITH_INNODB_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBXML2=system


make


make install


4. 初始化 MySQL 数据库。

bash

cd /usr/local/mysql


bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


5. 配置 MySQL。

bash

cp support-files/my-default.cnf /etc/mysql/my.cnf


6. 启动 MySQL 服务。

bash

bin/mysqld_safe &


7. 设置 root 密码。

bash

mysql -u root


ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';


安装 PostgreSQL

1. 下载 PostgreSQL 安装包。

2. 解压安装包。

3. 编译安装。

bash

tar -zxvf postgresql-12.2.tar.gz


cd postgresql-12.2


./configure --prefix=/usr/local/postgresql --with-python --with-perl --with-tcl --with-openssl --with-pam --with-ldap --with-ldap-libs=/usr/local/openldap/lib --with-ldap-include=/usr/local/openldap/include


make


make install


4. 配置 PostgreSQL。

bash

cd /usr/local/postgresql


bin/initdb -D /usr/local/postgresql/data


5. 启动 PostgreSQL 服务。

bash

bin/postgres -D /usr/local/postgresql/data &


配置 Hive Metastore

1. 修改 Hive 配置文件

1. 打开 Hive 配置文件 `hive-site.xml`。

bash

vi /usr/local/hive-3.1.2/conf/hive-site.xml


2. 添加以下配置:

xml

<property>


<name>javax.jdo.option.ConnectionURL</name>


<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>


<description>JDBC connect string for a MySQL database</description>


</property>


<property>


<name>javax.jdo.option.ConnectionDriverName</name>


<value>com.mysql.jdbc.Driver</value>


<description>Driver name for a MySQL database</description>


</property>


<property>


<name>javax.jdo.option.ConnectionUsername</name>


<value>root</value>


<description>Username to use when connecting to MySQL</description>


</property>


<property>


<name>javax.jdo.option.ConnectionPassword</name>


<value>new_password</value>


<description>Password to use when connecting to MySQL</description>


</property>


将 `localhost`、`3306`、`hive`、`root` 和 `new_password` 替换为实际的 MySQL 服务器地址、端口号、数据库名、用户名和密码。

2. 修改 Hive 服务启动脚本

1. 打开 Hive 服务启动脚本 `hive-server.sh`。

bash

vi /usr/local/hive-3.1.2/bin/hive-server.sh


2. 在脚本中添加以下配置:

bash

export HIVE_METASTORE_JDBC_URL="jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true"


export HIVE_METASTORE_JDBC_USERNAME="root"


export HIVE_METASTORE_JDBC_PASSWORD="new_password"


将 `localhost`、`3306`、`hive`、`root` 和 `new_password` 替换为实际的 MySQL 服务器地址、端口号、数据库名、用户名和密码。

3. 启动 Hive 服务

1. 启动 Hive Metastore。

bash

bin/hive --service metastore &


2. 启动 Hive Server。

bash

bin/hive --service hiveserver2 &


总结

本文详细介绍了如何配置 Hive Metastore 以使用 MySQL 或 PostgreSQL 作为后端存储。通过以上步骤,您可以轻松地将 Hive Metastore 元数据存储到关系型数据库中,提高性能和可靠性。在实际应用中,请根据实际情况调整配置参数,确保 Hive Metastore 正常运行。