hive元数据迁移

九月1年前技术文章760

一、在新集群中创建hive数据库,作为新集群中的元数据库。

注意点:创建hive数据库时注意用户和用户的权限及使用的编码格式一致。

查看旧集群中角色权限和编码格式,在新的hive元数据库中设置相同的角色权限和编码格式。

use mysql;
select * from user where user='root';
show grants for root@localhost;
show variables like 'character%'

二、旧集群中获取hive元数据库,使用mysql命令将其导出为一个sql文件。

mysqldump -uroot -proot --databases hive > /data/tmp/db_hive.sql

1.png

三、将获取到的sql文件复制到新集群中,在新的hive元数据库中执行。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| amon               |
| dataxweb           |
| hive               |
| hue                |
| metastore          |
| mutong             |
| mysql              |
| nav                |
| navms              |
| oozie              |
| performance_schema |
| rman               |
| rmon               |
| scm                |
| sentry             |
| sys                |
+--------------------+
17 rows in set (0.00 sec)

mysql> use hive;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> source /data/tmp/db_hive.sql

出现错误:ERROR 1840 (HY000): @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

2.png

因为两个集群中都有gtid的信息,导致数据在迁移过程中报错。

解决方法:在dump生成文件的时候,使用--set-gtid-purged=off参数,忽略gtid信息。

mysqldump -uroot -proot --set-gtid-purged=off --databases hive > /data/tmp/db_hive.sql

上面的步骤重新进行一遍。运行成功。

四、修改cdh新集群中涉及到hdfs路径的信息。

涉及到location字段hive数据库和hive数据表dbs/sds的更新。

use hive;
select * from dbs d2 
select * from sds s  
------备份好元数据--------
update  metastore.dbs set DB_LOCATION_URI  = REPLACE(DB_LOCATION_URI,"hadoop:9000","cdh01:8020") ;
update  metastore.sds set LOCATION  = REPLACE(LOCATION,"hadoop:9000","cdh01:8020") ;

五、在cdh页面配置中修改成自己刚创建的hive元数据库。

注意点:cdh元数据库涉及到cdh的表,需要添加到刚创建的hive元数据库中,否则会报错。然后重启cdh集群。

3.png

use hive

CREATE TABLE `cdh_version` (
  `VER_ID` bigint(20) NOT NULL,
  `SCHEMA_VERSION` varchar(127) NOT NULL,
  `VERSION_COMMENT` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`VER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `metastore_db_properties` (
  `PROPERTY_KEY` varchar(255) NOT NULL,
  `PROPERTY_VALUE` varchar(1000) NOT NULL,
  `DESCRIPTION` varchar(1000) DEFAULT NULL,
  PRIMARY KEY (`PROPERTY_KEY`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

需要导入对应的版本信息:

新建的hive元数据库dbs表中缺少CREATE_TIME字段,tbls中缺少owner_type

ALTER TABLE hive.dbs ADD create_time INT(11) NULL;
ALTER TABLE hive.tbls ADD owner_type varchar(10) null  after owner;

有warn信息报错:

6.png

主要是mysqldump中获取的dbs表owner_name字段中anonymous用户未找到,暂不影响使用。

7.png

使用beeline连接hive进行测试;

beeline> !connect  jdbc:hive2://172.16.104.2:10000
Connecting to jdbc:hive2://172.16.104.2:10000
Enter username for jdbc:hive2://172.16.104.2:10000: 
Enter password for jdbc:hive2://172.16.104.2:10000: 
Connected to: Apache Hive (version 2.1.1-cdh6.3.2)
Driver: Hive JDBC (version 2.1.1-cdh6.3.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://172.16.104.2:10000> show databases;
INFO  : Compiling command(queryId=hive_20210308210532_3326f98f-a2c7-4531-9762-d59638d3767e): show databases
INFO  : Semantic Analysis Completed
INFO  : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:database_name, type:string, comment:from deserializer)], properties:null)
INFO  : Completed compiling command(queryId=hive_20210308210532_3326f98f-a2c7-4531-9762-d59638d3767e); Time taken: 0.235 seconds
INFO  : Executing command(queryId=hive_20210308210532_3326f98f-a2c7-4531-9762-d59638d3767e): show databases
INFO  : Starting task [Stage-0:DDL] in serial mode
INFO  : Completed executing command(queryId=hive_20210308210532_3326f98f-a2c7-4531-9762-d59638d3767e); Time taken: 0.012 seconds
INFO  : OK
+----------------+
| database_name  |
+----------------+
| default        |
| mutong         |
| mutong2        |
+----------------+
3 rows selected (0.418 seconds)
0: jdbc:hive2://172.16.104.2:10000> create database ods;
INFO  : Compiling command(queryId=hive_20210308210640_18e24adc-24bb-495d-ae2f-a84c4c8ff2c9): create database ods
INFO  : Semantic Analysis Completed
INFO  : Returning Hive schema: Schema(fieldSchemas:null, properties:null)
INFO  : Completed compiling command(queryId=hive_20210308210640_18e24adc-24bb-495d-ae2f-a84c4c8ff2c9); Time taken: 0.033 seconds
INFO  : Executing command(queryId=hive_20210308210640_18e24adc-24bb-495d-ae2f-a84c4c8ff2c9): create database ods
INFO  : Starting task [Stage-0:DDL] in serial mode
INFO  : Completed executing command(queryId=hive_20210308210640_18e24adc-24bb-495d-ae2f-a84c4c8ff2c9); Time taken: 0.121 seconds
INFO  : OK
No rows affected (0.197 seconds)
0: jdbc:hive2://172.16.104.2:10000> show databases;
INFO  : Compiling command(queryId=hive_20210308210645_5862b5c3-31fb-4950-9b23-d81401cbf9a7): show databases
INFO  : Semantic Analysis Completed
INFO  : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:database_name, type:string, comment:from deserializer)], properties:null)
INFO  : Completed compiling command(queryId=hive_20210308210645_5862b5c3-31fb-4950-9b23-d81401cbf9a7); Time taken: 0.028 seconds
INFO  : Executing command(queryId=hive_20210308210645_5862b5c3-31fb-4950-9b23-d81401cbf9a7): show databases
INFO  : Starting task [Stage-0:DDL] in serial mode
INFO  : Completed executing command(queryId=hive_20210308210645_5862b5c3-31fb-4950-9b23-d81401cbf9a7); Time taken: 0.009 seconds
INFO  : OK
+----------------+
| database_name  |
+----------------+
| default        |
| mutong         |
| mutong2        |
| ods            |
+----------------+
4 rows selected (0.088 seconds)

查看新建的hive元数据表,已经生成了新建的ods库,cdh中元数据库切换成功。

8.png


相关文章

使用 cgroups为impala设置 CPU 限制

使用 cgroups为impala设置 CPU 限制

有时应用会占用大量 CPU 时间,这可能会对环境的整体健康状况造成负面影响。使用 /sys/fs/ 虚拟文件系统,利用 控制组版本 (cgroups) 为应用配置 CPU 限制。先决条件您有 roo...

Apache Ranger不使用root密码进行初始化

1、背景由于使用的数据库由dba进行管理,我们无法获取到对应的ranger数据库的root密码。需要使用数据库普通用户对表进行初始化2、解决ranger admin每次修改配置(install.pro...

系统RDSCPU打满问题分析报告

系统RDSCPU打满问题分析报告

1. 问题概述在2023年9月01日09点13分,玳数运维组侧接收到业务侧反馈系统响应缓慢,与此同时运维群内新系统RDS 发出CPU打满的告警,告警通知如下: 2. 问题分析a. 数据库会话管理核查玳...

InnoDB秘籍:MVCC机制与行锁的深度探索(2)

InnoDB秘籍:MVCC机制与行锁的深度探索(2)

InnodDB 和 ACID 模型事务 ACID 模型是一种数据库设计原则,InnoDB 引擎是 MySQL 默认且支持事务的存储引擎,它严格遵循 ACID 模型,结果也不会因软件崩溃和硬件故障等特殊...

MySQL 数据迁移中 lower_case_table_names 参数影响

MySQL 数据迁移中 lower_case_table_names 参数影响

记一次 SQLServer 迁移至 MySQL 遇到的一个关于 lower_case_table_names 参数的问题。前言   将 SQLServer 数据库迁移至 MySQL 迁移过后,驼峰命名...

HDFS业务类型与相关架构优化措施

低延迟业务计算密集型业务,低延迟业务,这一类业务通常是对大量NameNode文件目录访问为主的(权限判断,文件存在性,文件信息查询等对NameNode元数据操作为主的)。因此需要针对NameNode的...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。