CDH集群数据迁移distcp

环境为CDH6

脚本方式:

echo "123456" | kinit wnj
hadoop distcp -Ddistcp.bandwidth=500000000 -Dipc.client.fallback-to-simple-auth-allowed=true  hdfs://10.44.200.101:8020/user/wnj/hivetable/test/ /user/hive/warehouse/test/

-Ddistcp.bandwidth=500000000 带宽设置为500M

-Dipc.client.fallback-to-simple-auth-allowed=true #将数据从不安全的集群迁移到安全的集群,降低安全配置

因为新集群HDFS配置Kerberos认证。

因为CDH6的workflows的distcp ACTION操作,外加配上Kerberos认证秘钥文件也无法执行从非安全的集群到安全集群数据的迁移,故使用Shell方式。

注:其中涉及到一些MapReduce、distcp命令的配置与参数问题。见下表。可以根据集群系能以及业务需求选择合适的配置参数进行迁移。

DistCp命令行选项如表1所示:
标识    描述    备注
-p[rbugp]    Preserve
r:replication number
b: block size
u: user
g: group
p: permission
-i    忽略失败    这个选项会比默认情况提供关于拷贝的更精确的统计,
-log <logdir>    记录日志到 <logdir>
-m
<num_maps>    同时拷贝的最大数目    指定了拷贝数据时map的数目。请注意并不是map数越多吞吐量越大。
-overwrite    覆盖目标    用户要小心使用这个选项。
-update    如果源和目标的大小不一样则进行覆盖    用户使用要小心。
-f
<urilist_uri>    用<urilist_uri> 作为源文件列表    这等价于把所有文件名列在命令行中。 urilist_uri 列表应该是完整合法的URI。
    原文链接:https://blog.csdn.net/yinansheng1/article/details/78402459
hadoop distcp -Dmapred.jobtracker.maxtasks.per.job=1800000 \   #任务最大map数(数据分成多map任务)
-Dmapred.job.max.map.running=4000 \              #最大map并发
-Ddistcp.bandwidth=150000000 \                   #带宽
-Ddfs.replication=2 \                            #复制因子,两副本
-Ddistcp.skip.dir=$skipPath \                    #过滤的目录(不拷贝的目录)
-Dmapred.map.max.attempts=9 \                    #每个task最大尝试次数
-Dmapred.fairscheduler.pool=distcp \             #指定任务运行的pool
-pugp \                                          #保留属性(用户,组,权限)
-i \                                             #忽略失败的task
-skipcrccheck \                                  #忽略CRC校验(防止源,目标集群hdfs版本不一致导致任务失败。)
hdfs://clusterA:9000/AAA/data  \                 #源地址
hdfs://clusterB:9000/BBB/data                    #目标地址
    原文链接:http://www.mamicode.com/info-detail-1976865.html
数据量很大的情况下,内存问题MapReduce调优。可以在distcp命令后添加配置参数。
https://www.cnblogs.com/xjh713/p/9681442.html
https://www.cnblogs.com/tesla-turing/p/11958845.html

 

Shell脚本一个Workflows,循环执行所有要迁移的数据:

echo "123456" | kinit wnj
#!/bin/bash
for a in {908..942}
do
   hadoop distcp -Ddistcp.bandwidth=500000000 -Dipc.client.fallback-to-simple-auth-allowed=true hdfs://10.44.200.101:8020/user/wnj/hivetable/$a/ /user/hive/warehouse/wnj.db/a_table
done

在这里可以使用脚本语言,一次性添加所有需要迁移的数据,一次性执行。

 

### CDH 集群迁移方案与最佳实践 #### 1. 背景概述 CDHCloudera's Distribution Including Apache Hadoop)是一个广泛使用的开源大数据平台,其集群迁移通常涉及硬件升级、网络调整或其他基础设施变更。为了确保数据一致性和服务连续性,在执行迁移前需制定详细的计划并遵循最佳实践。 --- #### 2. 迁移方法与步骤 ##### 2.1 准备工作 在正式迁移之前,需要完成以下准备工作: - **确认目标环境配置**:确保新环境中操作系统版本、依赖库以及硬件规格满足当前CDH版本的要求[^3]。 - **备份现有数据和服务状态**:通过快照或复制方式保存重要组件的数据文件和元信息,例如HDFS中的block位置记录、YARN队列设置等。 ##### 2.2 环境搭建 - 安装新的服务器节点,并部署相同的操作系统及基础软件包。 - 设置好主机名解析表 `/etc/hosts` 和 DNS 记录以便于跨机器通信[^4]。 ##### 2.3 数据同步 利用工具如 `rsync` 或者 Cloudera 提供的功能实现大规模分布式系统的增量传输过程;对于数据库类应用则可能需要用到 dump/import 方法来处理外部连接关系重建等问题。 ##### 2.4 更新DNS/IP地址映射 当物理网卡更换或者虚拟化层变动引起IP发生变化时,务必及时修改所有涉及到该字段的应用程序配置项,比如 Hive Metastore URL 地址等等[^2]。 ##### 2.5 测试验证阶段 启动全部已迁移到的新实例之后进行全面功能测试,包括但不限于负载均衡能力评估、性能指标对比分析等方面的工作。 --- #### 3. 技术细节说明 以下是几个关键技术环节的具体操作指南: ##### Zookeeper 的迁移 由于ZooKeeper 是很多其他子模块所依赖的基础协调框架之一,因此它的平稳过渡显得尤为重要。可以按照如下顺序逐步推进: 1. 停止旧站点上的 ZK 实例; 2. 将原有日志目录下的内容拷贝至对应的目标路径下; 3. 修改客户端访问入口参数指向最新的成员列表; 4. 启动更新后的进程组。 ##### Parcel 文件管理 考虑到 Parcels 是一种特殊的分发机制用于简化安装流程,则有必要关注以下几个方面: - 查看官方文档获取最新版号链接下载地址; - 手工解压 tarball 到指定位置即 `/opt/cloudera/parcels/`; - 使用命令刷新缓存使得改动生效:`sudo yum clean all && sudo yum makecache fast`. --- ```bash # 示例脚本片段展示如何重置CM server关联的服务对象 systemctl stop cloudera-scm-server # 关闭后台守护线程 rm -rf /var/lib/cloudera-scm-server/* # 清理残留临时资料 cp backup_config.json ./ # 恢复先前导出的json格式描述符 systemctl start cloudera-scm-server # 开启新一轮监听端口等待请求到来 ``` --- #### 4. 总结建议 整个过程中应保持耐心细致的态度对待每一个细枝末节之处以免造成不可挽回的重大损失。同时也要充分利用自动化运维手段减少人为失误概率从而提高工作效率。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值