微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数据迁移方案

迁移方案

 

 

一. 背景及准备工作

  由于会遇到诸如集群版本升级、硬件设施更新、或是集群搬迁等情况。为保证用户在这些特定的意外情况下仍可以正常继续使用服务,需对相关组件及数据进行数据迁移。迁移方案整体要求如下:

  1.数栈搭建完成;

  2.源端与目标端网络通;

  3.建议版本一致。

 

 

 

二、迁移方案

  根据实际业务使用情况,hadoop数据从数据量上比重较大,迁移方案分为两阶段:

   第一阶段.全量迁移hadoop数据(即hdfs/hive)

   第二阶段.增量迁移hadoop数据,然后迁移MysqL、prometheus。

                                 第一阶段

1. Hadoop全量迁移方案

1.1 迁移要求

    如开启kerberos安全认证,需对两集群进行互信并建立相同租户及目录避免迁移过程中存在权限问题

 

1.2 数据迁移

  考虑数据量建议按照目录分批执行,一般迁移目录为/user/hbase  /warehouse  /dtInsight,根据用户实际目录配置及业务需求来确定。

     为保证目标集群与源集群数据完全一致,登入源集群执行

  hadoop distcp -update/overwirte -delete hdfs://源集群ANN ip:port/src   hdfs://目标集群ANN ip:port/dst

     例: hadoop distcp -update -delete hdfs://172.16.101.153:9000/hp   hdfs://172.16.101.44:9000/hp

  注:①-overwrite参数可覆盖相同文件文件

          ② -delete参数删除源集群不存在而目标集群存在文件,结果如下

image.png

              目标集群结果

image.png

           ③-bandwidth限制带宽,单位为M

 

1.3 校验

  登入源集群及目标集群执行      

    hdfs dfs -count -q -v   /迁移目录

    对比目录数、文件数、总大小是否一致。

image.png

 

1.4 方案耗时

  测试传输5.2G数据耗时约10分钟,即每分钟0.52G。

  根据工信部迁移情况,迁移可能受文件数影响,540G数据迁移大致耗费30小时,即每分钟0.3G与测试时间出入不大,如果存在单库多表的情况,建议迁移hive单表分批次执行迁移命令,确保hive表数据完整无异常。

 

 

 

                                 第二阶段

2.Hadoop增量迁移方案

  增量迁移Hadoop时需建议停止业务,如日更新数据量较大或者目录较多可以根据实际需求决定是否停服,不停服仅影响有变更数据目录两集群数据一致性,可通过全量迁移方案校验一致性。

2.1 迁移要求

     与Hadoop全量迁移方案相同。

 

2.2 数据迁移

  增量迁移仅需 -update参数,迁移命令如下:

     hadoop distcp -update hdfs://源集群ANN ip:port/src   hdfs://目标集群ANN ip:port/dst

     例: hadoop distcp -update hdfs://172.16.101.153:9000/hp   hdfs://172.16.101.44:9000/hp  

  注:-update会根据文件名及大小判断是否进行传输,减少传输量

 

    后续操作需要停止hadoop服务。

  

3.MysqL迁移方案

    由于MysqL数据量不会较大,等Hadoop迁移完成后直接停库或服务即可进行全量同步。

 

3.1 数据迁移

如单纯使用MysqL数据库,应停止业务。

3.1.1 完全备份数据库

  MysqL bin目录下执行命令./MysqLdump -uuser -password --databases databasename  > /data/backsql/testdb_`date +%F`.sql

    例:./MysqLdump -h127.0.0.1 -udrpeco -pDT@abc#123 api > /data/backsql/api_`date +%F`.sql

3.1.2 将dump文件传到目标服务器

  本地执行scp  /data/backsql/testdb_`data+%F`.sql     dst_user@dst_ip:/data/backsql/

     例:scp /data/backsql/api_`date +%F`.sql   [email protected]:/data/backsql

3.1.3 将数据文件导入目标MysqL

  执行命令./MysqL -uuser -password testdb < /data/backsql/testdb_`data +%F`.sql

    例./MysqL -h127.0.0.1 -udrpeco -pDT@abc#123 api  < /data/backsql/api_`date +%F`.sql

 

3.2 校验

  进入数据库进行随机select查询数据对比结果。

 

3.3 方案耗时

    测试12G耗时约10分钟,传输峰值23M/s,均值17M/s。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐