集群之间数据拷贝distcp性能的调优
百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性能的调优相关推荐
- 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”
去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...
- 【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝
数据迁移场景: 冷热集群数据分类存储:集群数据整体迁移:数据的准实时同步,目的在于数据的双备份可用. 数据迁移需要考虑的因素: 带宽.性能.增量同步(原始数据文件进行了追加写.被删除或重命名) ...
- hbase集群之间数据迁移_hbase数据迁移到另一集群上
通常我们都会有将hbase表数据迁到另一个hbase表中业务需要,这种不要着急,我选择一种最适合的方式,因为每种方式处理的数据量.对集群的压力都是有差异的 总的划分可以分为命令行和API两种方式,本人 ...
- hbase集群 数据写入_HBase神器 | BDSHBase集群之间数据迁移同步的利器
BDS定位 BDS针对开源HBase目前存在的同步迁移痛点,自主研发的一套数据迁移的平台,用于HBase集群的无缝迁移.主备容灾.异地多活.在线离线业务分离.HBase数据归档.对接RDS实时增量数据 ...
- HBase不同版本集群之间数据迁移
本文摘自:https://www.dazhuanlan.com/2019/10/20/5dac43ffeb75a/ 由于HBase CDH4和CDH5数据格式不兼容,所以不能用"CopyTa ...
- hbase集群之间数据迁移_HBase不同集群间数据迁移
前提 两个集群相同vpc和安全组 操作步骤 一.查看源端集群HDFS NameNode IP和port 1. 查看NameNode IP,获取对应的name转换成IP hdfs getconf -na ...
- Apache Doris1.0版本集群搭建、负载均衡与参数调优
首先下载包,有源码和预编译两种包 .我这用的预编译 下载 | Apache Doris 我的架构是3FE+7BE 首先操作系统安装要求 #设置系统最大打开文件句柄数 vi /etc/security/ ...
- Hadoop集群间文件拷贝
Hadoop集群间文件拷贝 distcp使用 DistCp Version 2(分布式copy)是用于集群间/集群内的文件copy工具, 使用MapReduce实现分布式.错误处理.恢复和报告.dis ...
- 01.04第一篇之集群搭建数据采集模块
第4 章集群搭建&数据采集模块 4.0 虚拟机准备 4.0.1 虚拟机内存分配 1)从hadoop100的快照中克隆出3台虚拟机,并分配好内存 建议内存不低于4G,尤其是hadoop102,作 ...
最新文章
- VirtualApp技术黑产利用研究报告
- 遇到个鬼,在WIN08的DELL R710上安装CENTOS 63,无法格式化以前的硬盘分区,安装无法进行下去。...
- Mirror--镜像使用的工作线程数
- 不错的递归题:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。
- [健康]女人喝红酒的好处
- kvm上添加万兆网卡_烂泥:为KVM虚拟机添加网卡
- 通俗易懂设计模式解析——代理模式
- 安卓开发设置全屏隐藏标题栏
- nginx mime.types php,使用重写和有效的mime类型配置NGINX的正确方法
- 毫秒数据字符串转换为DateTime
- power bi 背景图_Power BI桌面脉冲图
- SQL 单表查询多个计算的值
- android开发--不安装支付宝客户端调H5页面问题
- BI神器Power Query(10)-- PQ从文件夹导入数据
- IOS停机卡免流线路下载更新
- HTML 5:绘制旋转的太极图
- Ubuntu16.04 + Geforce GT630 OEM安装cuda 8.0
- IDEA连接达梦数据库
- 一晚上写出来的游戏 苹果也会推荐!
- 《嵌入式系统 – 玩转ART-Pi开发板(基于RT-Thread系统)》第9章 基于Select/Poll实现并发服务器(二)