Hive对接外置RDS
- RDS:在本章节中代表关系型数据库,本章节以对接开源MySQL和Postgres数据库进行说明。
- 在已有hive数据的集群上外置元数据库后,之前的元数据表不会自动同步。因此在安装hive之初就要确认好元数据是外置RDS还是内置到DBService,如果是外置到RDS,则需在安装hive时或者暂无hive数据时将元数据外置RDS,安装后不允许修改,否则将会造成原有元数据丢失。
Hive支持开源MySQL和Postgres元数据库。
- 安装开源MySQL或Postgres数据库。
数据库安装节点需与集群处于同一网段,能互相访问。
- 上传驱动包。
- Postgres:使用开源驱动包替换集群已有的驱动包。将postgres驱动包postgresql-42.2.5.jar上传至所有MetaStore实例节点${BIGDATA_HOME}/third_lib/Hive目录下(开源驱动包下载地址:https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.5/)。
- MySQL:进入MySQL官网(https://www.mysql.com/),选择“Downloads > Community > MySQL Connectors > Connector/J”下载对应版本的驱动包,将MySQL对应版本的驱动包上传至所有Metastore实例节点“${BIGDATA_HOME}/third_lib/Hive”目录下。
- 在RDS中创建database,作为Hive元数据的指定库。
在Postgres或MySQL中执行以下命令:
create database databasename;
其中databasename为数据库库名。
- 导入元数据建表sql。
- Postgres的sql文件路径:${BIGDATA_HOME}/FusionInsight_HD_8.1.2.2/install/FusionInsight-Hive-3.1.0/hive-3.1.0/scripts/metastore/upgrade/postgres/hive-schema-3.1.0.postgres.sql
Postgres导入sql文件的命令:
./bin/psql -U username -d databasename -f hive-schema-3.1.0.postgres.sql
其中:
./bin/psql:在Postgres安装目录下。
username:登录Postgres的用户名。
databasename:数据库库名。
- MySQL的sql文件路径:${BIGDATA_HOME}/FusionInsight_HD_8.1.2.2/install/FusionInsight-Hive-3.1.0/hive-3.1.0/scripts/metastore/upgrade/mysql/hive-schema-3.1.0.mysql.sql
Mysql导入sql文件的命令:
./bin/mysql -u username -ppassword -Ddatabasename<hive-schema-3.1.0.mysql.sql
其中:
./bin/mysql:在MySQL安装目录下。
username:登录MySQL的用户名。
databasename:数据库库名。
- Postgres的sql文件路径:${BIGDATA_HOME}/FusionInsight_HD_8.1.2.2/install/FusionInsight-Hive-3.1.0/hive-3.1.0/scripts/metastore/upgrade/postgres/hive-schema-3.1.0.postgres.sql
- 登录FusionInsight Manager,具体请参见访问FusionInsight Manager,选择“集群 > 待操作集群名 > 服务 > Hive > 配置 > 全部配置 > Hive(服务) > MetaDB”,修改以下参数并保存,使Hive的配置对接到开源数据库。
表1 参数说明 参数名
默认值
描述
javax.jdo.option.ConnectionDriverName
org.postgresql.Driver
Metastore上连接元数据的驱动类。
javax.jdo.option.ConnectionURL
jdbc:postgresql://%{DBSERVICE_FLOAT_IP}%{DBServer}:%{DBSERVICE_CPORT}/hivemeta?socketTimeout=60
Metastore元数据JDBC链接的URL。
javax.jdo.option.ConnectionUserName
hive${SERVICE_INDEX}${SERVICE_INDEX}
Metastore上连接元数据数据库的用户名。
- 在MetaStore中修改Postgres数据库密码,选择“集群 > 待操作集群名 > 服务 > Hive > 配置 > 全部配置 > MetaStore(角色) > MetaDB”,修改以下参数并保存。
表2 参数说明 参数名
默认值
描述
javax.jdo.option.extend.ConnectionPassword
******
Metastore上连接外置元数据数据库的用户密码。密码后台会加密。
- 登录所有MetaStore服务的后台节点,检查本地目录“/opt/Bigdata/tmp”是否存在。
- 存在,直接执行步骤8。
- 不存在,则先执行以下命令,创建目录。
chmod 755 /opt/Bigdata/tmp
- 保存配置,选择“概览 > 更多 > 重启服务”,输入密码开始重启Hive服务。