分享一次hive跨集群数据同步采坑经验 - 细节是魔鬼!

本文分享了一次在做hive跨集群数据同步时遇到的问题,由于使用了-hadoop distcp的-skipcrccheck参数,导致文件CRC校验被跳过,从而出现数据不一致的情况。在排查和解决问题的过程中,强调了理解开源工具原理和细节的重要性,以及官方文档和技术社区作为参考资料的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数据集群内部都有节点级别和机架级别的容错机制(存储层对应的就是传统的三副本或纠删码机制),但对于一些数据安全性要求更改的场景,就需要做跨集群的数据同步了,比如在金融行业典型的两地三中心场景下就会周期性地做多个集群间的数据同步。另外有时出于压力测试或性能测试的需要,有时也会涉及到跨集群的数据同步(因为需要在测试环境尽可能地模拟生产环境的数据环境和数据体量)。

那么如何做hdfs/hive的跨集群数据同步呢?

对于hdfs,业界成熟的方案都是基于 Hadoop 原生的 distcp来做的,其底层原理是Yarn上执行的分布式的map/reduce程序,可以从原集群推送数据到目标集群(因为会占用原集群yarn中的计算资源,生产这么做的比较少),也可以从目标集群发起作业主动拉取原集群的数据(大家一般都是这么玩的);可以在未启用安全模式的环境下执行,也可以在启用了kerberos安全的环境中完成任务;可以在相同版本的集群间同步数据,也可以跨版本同步数据(此时需要使用webhdfs协议);同时有各种参数控制同步时的各种行为,如控制map任务个数的-m, 控制每个map可用带宽的 -bandwidth, 控制是否拷贝元数据的-p[rbugpcaxt] (rbugpcaxt 分别指:replication number, block size, user, group, permission,checksum-type, acl, xattr,以及 tiemstamp.), 控制是否结合使用快照snapshot的 -diff或-rdiff.

对于hive的跨集群数据同步,hive社区在推动 hive replication的方案,但因为各种前提和限制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明哥的IT随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值