更新时间:2023-03-17 GMT+08:00
Hive元数据
Hive元数据备份
Hive表数据存储在HDFS上,表数据及表数据的元数据由HDFS统一按数据目录进行迁移。而Hive表的元数据根据集群的不同配置,可以存储在不同类型的关系型数据库中(如MySQL,PostgreSQL,Oracle等)。本指导导出的Hive表元数据即存储在关系型数据库中的Hive表的描述信息。
业界主流大数据发行版均支持Sqoop的安装,如果是自建的社区版大数据集群,可下载社区版Sqoop进行安装。借助Sqoop来解耦导出的元数据与关系型数据库的强依赖,将Hive元数据导出到HDFS上,与表数据一同迁移后进行恢复。步骤如下:
- 在源集群上下载并安装Sqoop工具。请参见http://sqoop.apache.org/。
- 下载相应关系型数据库的jdbc驱动放置到$Sqoop_Home/lib目录。
- 执行如下命令导出所有Hive元数据表。所有导出数据保存在HDFS上的/user/<user_name>/<table_name>目录。
$Sqoop_Home/bin/sqoop import --connect jdbc:<driver_type>://<ip>:<port>/<database> --table <table_name> --username <user> -password <passwd> -m 1
其中,各参数的含义如下。
- $Sqoop_Home:Sqoop的安装目录
- <driver_type>:数据库类型
- <ip>:源集群数据库的IP地址
- <port>:源集群数据库的端口号
- <table_name>:待导出的表名称
- <user>:用户名
- <passwd>:用户密码
Hive元数据恢复
在目的集群中安装并使用Sqoop命令将导出的Hive元数据导入MRS集群DBService。
$Sqoop_Home/bin/sqoop export --connect jdbc:postgresql://<ip>:20051/hivemeta --table <table_name> --username hive -password <passwd> --export-dir <export_from>
其中,各参数的含义如下。
- $Sqoop_Home:目的集群上Sqoop的安装目录
- <ip>:目的集群上数据库的IP地址
- <table_name>:待恢复的表名称
- <passwd>:hive用户的密码
- <export_from>:元数据在目的集群的HDFS地址。
父主题: 数据备份与恢复