跨网络以及跨文件系统之间的文件同步

2 篇文章 0 订阅

问题

近期遇到以下问题:跨网络的Hadoop集群数据同步。

背景

因为一些安全性原因,内部在大集群之外搭建了一套网络隔离的Hadoop集群,而且需要从大集群同步数据到该网络隔离的Hadoop集群上去。
在不存在网络问题的情况下,可以使用Distcp跨集群拷贝,但是因为网络的问题,Distcp就失效了。在起初,使用了Datax来实现数据的同步,但缺陷也比较明显:

  1. 配置复杂,需要配置字段级的信息,而这种在文件拷贝的场景下其实是不需要的
  2. 对文件的压缩格式要求很高
  3. 无法支持hive的动态分区。

此外,可能会有人提出其他的方案,譬如通过Hadoop客户端拉取文件到中转机,再从中转机推到另一个集群,但这种方式的缺陷也比较明显:

  1. 太慢了
  2. 监控和错误处理机制不够,无法线上稳定调度
  3. 对中转机的存储也有很高的要求

解决方案

借鉴了Datax的框架+插件的思想,可以在计算资源和网络IO资源之间寻找平衡,最大化的提升效率。为此,在Datax上进行改造,复用了Datax的框架部分,对协议和插件做了一些定制化的改造,使之成为文件拷贝的工具。

该方案不仅能用于解决网络隔离场景下的文件同步,也能解决不同文件系统之间的数据同步。

目前写了初步版本,代码见: https://github.com/amazingWu/datax-fs-cp

不知道有没有其他的合适的方案,也不吝指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值