大型集团内部数据采集方案设计

当大型集团内部、如总公司和子公司之间需要进行数据交换、采集时,其中总公司是Hive数据源,两个NameNode,30个DataNode的高可用集群,子公司一般是Mysql数据源,总公司与各个子公司之间都是网络隔离的。

                 

现在我们首先考虑的业务场景是总公司对各个子公司进行数据采集,也就是子公司将mysql上的数据同步到总公司的hive数仓内。

如果在子公司服务器使用阿里的Datax工具插件进行同步,需要将Hive集群的各个节点(32台服务器)的Hive端口都开放给子公司的服务器,这样做有将有两个问题:

1、安全问题,过多端口开放导致的安全隐患增大

2、维护成本,给每家子公司都需要开放这么多的端口,就算子公司只有一台服务器需要连通,那么100家子公司就需要开放100*32个端口

 

第一种方案,使用Netty进行跨网络数据传输,只需要开放netty-client到netty-server的一个用于tcp连接的端口,然后netty-server将数据写入kafka进行削峰

第二种方案,使用Flume进行数据采集,双层flume架构设计:memory channel + kafka channel

具体实现细节后续补充~

方案设计的最重要的三个问题:

1、维护成本

2、性能

3、高可用

个人倾向第二种方案,因为可以采用开源组件封装下即可,若使用第一种的,需要定制化开发的东西过多,虽然小伙伴很给力,但是人的精力有限,还是做一些更有回报性的事情吧。

一个架构设计的原则:越简单,则越好! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值