百PB级数据拷贝distcp性能调优

背景

配合集群迁移,需要迁移3PB数据

拷贝方式

全量数据约3PB,全量拷贝一次,耗时近两个星期(业务每日高峰期需要停止拷贝作业)
这里主要测试每天的增量同步速度(6PB全量基础上的增量,每天数量在120TB左右,不含副本数)
拷贝方式,按照业务项目数仓路径单独作业。对于超大项目,子目录划分为独立作业

速度问题

拷贝数据过程中,发现distcp存在以下比较慢的问题,包含不限于以下

启动慢
大作业的AM做filelist操作,任务切分耗时较长

同步慢
默认的map设置和速度设置较低,例如针对大项目默认限速设置100MB过小

收尾慢
因为CRC校验,收尾相对较慢。考虑skipcrccheck。改用从nn的fsimage校验方式,出于数据安全性考虑,最后还是接受这个时间代价】

调优措施

慢启动问题
开启多个线程filelist操作,numListstatusThreads
减少AM切分工作量,提前移走大项目部分历史数据,拷贝完成移回来
insert overwrite个别hive小文件数特别多的目录
大项目分二级目录,独立作业
distcp参数调优
单个map带宽限制设置为1000MB(默认值10倍,相当于不限制)
根据项目大小设置maps数量和AM的内存限制
数据倾斜问题
distcp按照文件FileList划分路径组。会导致每日新增部分落到少量map上面,所以增量同步的时候,性能很差。
同时默认限速过小出现数据倾斜问题会导致大项目拖尾严重(有项目表每天上千个10G级别的文件)

调优措施

提前同步一次当天的分区
专门为大表当天分区做一次同步(在正式业务迁移开始之前开展一次)
distcp.dynamic.split.ratio
dynamic倾斜率,允许拷贝比较快的map分到更多的任务,默认为2,改为4
The new DistCp also provides a strategy to “dynamically” size maps, allowing faster data-nodes to copy more bytes than slower nodes. Using -strategy dynamic (explained in the Architecture), rather than to assign a fixed set of source-files to each map-task, files are instead split into several sets. The number of sets exceeds the number of maps, usually by a factor of 2-3. Each map picks up and copies all files listed in a chunk. When a chunk is exhausted, a new chunk is acquired and processed, until no more chunks remain.

慢节点问题
在IO比较高的情况下,集群存在Slow ReadProcessor read fields现象,导致copyfilelist很慢
解决方案, 检测日志,发现并重启慢节点datanode
机房带宽问题
机房层面设置QOS保障
实时业务设置为高优先级队列,保障带宽打满时候的高优先级任务

其它
关掉集群balance
客户端并发内存瓶颈,拷贝作业调度在多个机器上

集群之间数据拷贝distcp性能的调优相关推荐

  1. 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”

    去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...

  2. 【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝

    数据迁移场景:   冷热集群数据分类存储:集群数据整体迁移:数据的准实时同步,目的在于数据的双备份可用. 数据迁移需要考虑的因素:   带宽.性能.增量同步(原始数据文件进行了追加写.被删除或重命名) ...

  3. hbase集群之间数据迁移_hbase数据迁移到另一集群上

    通常我们都会有将hbase表数据迁到另一个hbase表中业务需要,这种不要着急,我选择一种最适合的方式,因为每种方式处理的数据量.对集群的压力都是有差异的 总的划分可以分为命令行和API两种方式,本人 ...

  4. hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器

    BDS定位 BDS针对开源HBase目前存在的同步迁移痛点,自主研发的一套数据迁移的平台,用于HBase集群的无缝迁移.主备容灾.异地多活.在线离线业务分离.HBase数据归档.对接RDS实时增量数据 ...

  5. HBase不同版本集群之间数据迁移

    本文摘自:https://www.dazhuanlan.com/2019/10/20/5dac43ffeb75a/ 由于HBase CDH4和CDH5数据格式不兼容,所以不能用"CopyTa ...

  6. hbase集群之间数据迁移_HBase不同集群间数据迁移

    前提 两个集群相同vpc和安全组 操作步骤 一.查看源端集群HDFS NameNode IP和port 1. 查看NameNode IP,获取对应的name转换成IP hdfs getconf -na ...

  7. Apache Doris1.0版本集群搭建、负载均衡与参数调优

    首先下载包,有源码和预编译两种包 .我这用的预编译 下载 | Apache Doris 我的架构是3FE+7BE 首先操作系统安装要求 #设置系统最大打开文件句柄数 vi /etc/security/ ...

  8. Hadoop集群间文件拷贝

    Hadoop集群间文件拷贝 distcp使用 DistCp Version 2(分布式copy)是用于集群间/集群内的文件copy工具, 使用MapReduce实现分布式.错误处理.恢复和报告.dis ...

  9. 01.04第一篇之集群搭建数据采集模块

    第4 章集群搭建&数据采集模块 4.0 虚拟机准备 4.0.1 虚拟机内存分配 1)从hadoop100的快照中克隆出3台虚拟机,并分配好内存 建议内存不低于4G,尤其是hadoop102,作 ...

最新文章

  1. VirtualApp技术黑产利用研究报告
  2. 遇到个鬼,在WIN08的DELL R710上安装CENTOS 63,无法格式化以前的硬盘分区,安装无法进行下去。...
  3. Mirror--镜像使用的工作线程数
  4. 不错的递归题:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。
  5. [健康]女人喝红酒的好处
  6. kvm上添加万兆网卡_烂泥:为KVM虚拟机添加网卡
  7. 通俗易懂设计模式解析——代理模式
  8. 安卓开发设置全屏隐藏标题栏
  9. nginx mime.types php,使用重写和有效的mime类型配置NGINX的正确方法
  10. 毫秒数据字符串转换为DateTime
  11. power bi 背景图_Power BI桌面脉冲图
  12. SQL 单表查询多个计算的值
  13. android开发--不安装支付宝客户端调H5页面问题
  14. BI神器Power Query(10)-- PQ从文件夹导入数据
  15. IOS停机卡免流线路下载更新
  16. HTML 5:绘制旋转的太极图
  17. Ubuntu16.04 + Geforce GT630 OEM安装cuda 8.0
  18. IDEA连接达梦数据库
  19. 一晚上写出来的游戏 苹果也会推荐!
  20. 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)

热门文章

  1. C#如何与OPC连接
  2. 深入理解JAVA锁的机制
  3. 一步一步搭建免费的Silverlight 2开发环境
  4. python中关于元组的基础运用
  5. vijos1153猫狗大战
  6. tomcat源码分析--初始化与启动
  7. 数据库SQL语句解析
  8. 【编译原理笔记18】代码优化:活跃变量分析,可用表达式分析
  9. android图标成功,Android多启动图标实现
  10. 2020-04-27 三种内存屏障 acquire barrier / release barrier / full barrier