自建hadoop集群迁移到EMR之数据迁移篇

简介: 自建集群要迁移到EMR集群,往往需要迁移已有数据。本文主要介绍hdfs数据和hive meta数据如何迁移。 前置 已按需求创建好EMR集群。 迁移hdfs数据 主要依靠distcp,核心是打通网络,确定hdfs参数和要迁移内容,测速,迁移。

自建集群要迁移到EMR集群,往往需要迁移已有数据。本文主要介绍hdfs数据和hive meta数据如何迁移。

前置

已按需求创建好EMR集群。

迁移hdfs数据

主要依靠distcp,核心是打通网络,确定hdfs参数和要迁移内容,测速,迁移。

网络

需要自建集群和EMR各个节点网络互通。同为VPC网络只需要同一个安全组,不同的安全组需要设置安全组互通。

如果自建集群是经典网络,EMR集群是vpc,网络访问需要设置CLASSICLINK.参见文档,详情可以咨询ECS客服。

设置后可以在新集群节点上ssh 老集群节点确定网络连通情况,distcp操作如果有xx 节点无法连接xx节点的异常,说明没有连通,需要继续设置。

hdfs权限配置确认

hdfs有权限设置,确定老集群是否有acl规则,是否要同步,检查dfs.permissions.enabled 和dfs.namenode.acls.enabled的配置新老集群是否一致,按照实际需要修改。

如果有acl规则要同步,distcp参数要加-p同步权限参数。如果distcp操作提示xx集群不支持acl,说明对应集群没配置。新集群没配置可以修改配置并重启NM。旧集群不支持,说明旧集群根本就没有acl方面的设置,也不需要同步。

同步参数

一般在新集群上运行同步,这样同步的作业可以在新集群上运行,对老集群影响较小。

distcp参数细节,一般命令格式如下:
hadoop distcp -Ddfs.replication=3 -pbugpcax -m 1000 -bandwidth 30 hdfs://oldclusterip:8020 /user/hive/warehouse /user/hive/
注意事项:

  1. hdfs://oldclusterip:8020写老集群nameode ip,多个namenode写当前active的。
  2. 指定了副本数3,如想保留原有副本数-p后加r如-prbugpcax。如果不同步权限和acl,-p后去掉p和a。
  3. -m指定map数,和集群规模,数据量有关。比如集群有2000核cpu,就可以指定2000个map。 -bandwidth指定单个map的同步速度,是靠控制副本复制速度实现的,是大概值。
    4.迁移整体速度受集群间带宽,集群规模影响。同时文件越多,checksum需要的时间越长。如果迁移数据量大,可以先试着同步几个目录评估一下整体时间。如果只能在指定时间段内同步,可以将目录切为几个小目录,依次同步。

5.如果迁移过程中老集群还有写入,可以用-udpate再将变化同步过来。
6.一般完全同步,需要有个短暂的业务停写,以启用双写双算或直接将业务切换到新集群上。

hive meta数据同步

hive meta数据同步,本质是hive meta db,一般是mysql db的数据同步。和一般的mysql数据同步相比,要注意location改变,和hive版本对齐。

meta db设置

meta数据较多时,一般推荐用rds作为meta db。自建集群可能已有一个rds db,由于location不同,一般需要新建一个数据库。最佳实践是跟EMR集群在一个可用区,一个vpc 安全组下新建一个rds 数据库。

登录新集群master节点(如果是ha集群两个master都需要),修改/usr/local/emr/emr-agent/run/meta_db_info.json,把里面的use_local_meta_db设置为false,meta数据库信息的链接地址、用户名和密码换成新建rds的信息。然后重启hive组件的metaserver。

初始化meta的表信息:
···
cd /usr/lib/hive-current/bin
./schematool - initSchema -dbType mysql
···

location

hive的表,分区等信息是有location信息的,带dfs nameservices前缀,如hdfs://mycluster:8020/,而EMR集群的nameservices前缀是统一的emr-cluster,所以需要订正。订正的最佳方式是先导出数据mysqldump --databases hivemeta --single-transaction -u root –p > hive_databases.sql,用sed替换hdfs://oldcluster:8020/为hdfs://emr-cluster/ ,再导入新db中。
mysql hivemeta -p < hive_databases.sql

版本对齐

EMR的hive版本一般是当前社区最新的稳定版,自建集群hive版本可能会更老,所以导入的旧版本数据可能不能直接使用。需要执行hive的升级脚本,地址。例如hive从1.2升级到2.3.0,需要依次执行upgrade-1.2.0-to-2.0.0.mysql.sql,upgrade-2.0.0-to-2.1.0.mysql.sql,upgrade-2.1.0-to-2.2.0.mysql.sql,upgrade-2.2.0-to-2.3.0.mysql.sql。脚本主要是建表,加字段,改内容,如有表已存在,字段已存在的异常可以忽略。

验证

meta数据全部订正后,就可以重启metaserver了。命令行hive,查询库和表,查询数据,验证正确性。

目录
相关文章
|
存储 SQL 分布式计算
阿里云全托管flink-vvp平台hudi connector实践(基于emr集群oss-hdfs存储)
阿里云全托管flink-vvp平台hudi sink connector实践,本文数据湖hudi基于阿里云E-MapReduce产品,以云对象存储oss-hdfs作为存储
|
分布式计算 测试技术 调度
EMR Remote Shuffle Service实践问题之集群中落地阿里云RSS如何解决
EMR Remote Shuffle Service实践问题之集群中落地阿里云RSS如何解决
|
SQL 弹性计算 分布式计算
阿里云 EMR 发布托管弹性伸缩功能,支持自动调整集群大小,最高降本60%
阿里云开源大数据平台 E-MapReduce 重磅推出托管弹性伸缩功能,基于 EMR 托管弹性伸缩功能,您可以指定集群的最小和最大计算限制,EMR 会持续对与集群上运行的工作负载相关的关键指标进行采样,自动调整集群大小,以获得最佳性能和资源利用率。
802 15
|
SQL 分布式计算 关系型数据库
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
Hadoop-21 Sqoop 数据迁移工具 简介与环境配置 云服务器 ETL工具 MySQL与Hive数据互相迁移 导入导出
482 3
|
SQL 关系型数据库 MySQL
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
270 0
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
484 0
|
SQL JSON 分布式计算
通过云监控CloudMonitor实时捕获EMR集群的状态变化
通过结合CloudMonitor以及FC,可以实时捕获EMR集群的生命周期变化,如集群的创建和停止,扩容和缩容以及其他类型的集群状态变更等。
6915 2
通过云监控CloudMonitor实时捕获EMR集群的状态变化
|
DataWorks 数据挖掘 Serverless
阿里云EMR Serverless StarRocks 内容合集
阿里云 EMR StarRocks 提供存算分离架构,支持实时湖仓分析,适用于多种 OLAP 场景。结合 Paimon 与 Flink,助力企业高效处理海量数据,广泛应用于游戏、教育、生活服务等领域,显著提升数据分析效率与业务响应速度。
616 0
|
存储 分布式计算 OLAP
百观科技基于阿里云 EMR 的数据湖实践分享
百观科技为应对海量复杂数据处理的算力与成本挑战,基于阿里云 EMR 构建数据湖。EMR 依托高可用的 OSS 存储、开箱即用的 Hadoop/Spark/Iceberg 等开源技术生态及弹性调度,实现数据接入、清洗、聚合与分析全流程。通过 DLF 与 Iceberg 的优化、阶梯式弹性调度(资源利用率提升至70%)及倚天 ARM 机型搭配 EMR Trino 方案,兼顾性能与成本,支撑数据分析需求,降低算力成本。
969 59
|
人工智能 分布式计算 DataWorks
一体系数据平台的进化:基于阿里云 EMR Serverless Spark 的持续演进
本文介绍了一体系汽配供应链平台如何借助阿里云EMR Serverless Spark实现从传统Hadoop平台向云原生架构的迁移。通过融合高质量零部件供应与创新互联网科技,一体系利用EMR Serverless Spark和DataWorks构建高效数据分析体系,解决大规模数据处理瓶颈。方案涵盖实时数据集成、Lakehouse搭建、数仓分层设计及BI/ML应用支持,显著提升数据处理性能与业务响应速度,降低运维成本,为数字化转型奠定基础。最终实现研发效率提升、运维压力减轻,并推动AI技术深度整合,迈向智能化云原生数据平台。
479 4

热门文章

最新文章