大家好,我是明哥!
最近有小伙伴问到 hadoop distcp 的使用,对其中的一些细节和容易踩的坑不是很清楚,所以今天我们来看下 hadoop distcp的原理,细节和容易踩的坑。
1.DistCp 概述
我们知道大数据集群内部都有节点级别和机架级别的容错机制(存储层对应的就是传统的三副本或纠删码机制),但对于一些数据安全性要求更改的场景,比如在金融行业典型的两地三中心场景下,经常有跨区域跨集群灾备的需求,此时就会涉及到跨集群的数据同步。
DistCp (distributed copy) 就是一款跨集群的数据同步工具。
DistCp 可以用来做 hdfs 集群内部或集群之间的大规模的数据同步,由于在底层使用了 MapReduce 框架会通过多个 mapper来拷贝需要拷贝的文件列表,其性能相比 hdfs dfs -get/put 等通过本地文件系统中转的数据同步方案,要高效快速很多。
同时由于 DistCp 可以跨 hdfs 大版本进行数据同步,且新版本的 DistCp(distcp version 2)相比老版本的DistCp(legacy DistCp,version1.2.1)在很多方面都做了优化和改进,所以大规模的数据同步,不论是集群内部还是集群之间,首选的方案都是DistCp。
很多商业的hdfs数据同步方案,其底层都是原生的 DistCp,比如 cdh 的 bdr 工具,比如 tdh 的backup工具,其原理都是如此。
2.关于集群间数据同步
3.关于开启了 kerberos 安全认证后的数据同步
4.DistCp 的底层工作机制
新版 DistCp 底层有以下组件,其各自的职责如下:
5.DistCp 的重要参数讲解
DistCp 提供了多种参数,来控制拷贝任务的各种细节,经常使用到的关键参数有 -update, -delete, -overwrite, -m,-bandwidth,-diff,-p,-i 等:
6.易踩的坑 - skipcrccheck
skipcrccheck 的坑-hdfs
skipcrccheck 的坑-hive sql
7.关于 hive 的跨集群数据同步
8.常用命令总结
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://jmbhsh.com/baihuo725/35725.html