加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

DataPipeline在大数据平台的数据流实践

发布时间:2018-11-24 08:31:49 所属栏目:大数据 来源:dockone
导读:进入大数据时代,实时作业有着越来越重要的地位。本文将从以下几个部分进行讲解DataPipeline在大数据平台的实时数据流实践。 一、企业级数据面临的主要问题和挑战 1.数据量不断攀升 随着互联网+的蓬勃发展和用户规模的急剧扩张,企业数据量也在飞速增长,

在加载数据的时间里,提前对kafka进行消费,缓存处理好的一个数据集,当一个线程加载数据结束后马上开始新的线程加载数据,减少处理加载数据的时间; delete + copy的方式可以保证数据最终一致性; source 端有主键的表可以通过主键来合并一个批次需要同步的数据,如一个需要同步的批量数据中包含一条 insert 的数据,后面跟着

update 该条数据,那就无需同步两遍,将该数据更新到 update 之后的状态 copy 到 gp 当中即可。

同步GreenPlum需要注意:因为是通过copy 写入文件的,需要文件是结构化数据,典型的是使用CSV,,CSV 写入时需注意spiltquote,escapequote,避免出现数据错位的现象。update主键的问题 , 当源端是update一个主键时,同时需要记录update前的主键,并在目标端进行删除。还有 特殊字符的问题,因为核心是用C语言,所以在同步的时候需要特殊处理掉。

三、DataPipeline未来的工作 1. 目前我们碰到kafka connect rebalance的一些问题,所以我们对其进行了改造。以往的rebalance机制是假如我们增加或者删除一个task,会导致整个集群rebalance,这样造成很多无谓的开销而且频繁的rebalance 不利于数据同步的任务的稳定。于是我们将rebalance机制改造成一个黏性的机制:

- 当我们增加一个新的任务的时候,我们会检查所有的worker使用率比较低的,当worker的task比较少,我们只把它加进比较少的worker就可以了,也不需要做全量的平衡,当然这时候可能还是有一些不平衡的资源浪费,这是我们可以容忍的,至少比我们做一次全量的rebalance开销要小;

- 假如删除一个task,以往的机制是删除一个task的时候也会做全量的Rebalance,新的机制不会触发rebalance。这时候如果时间长也会造成一个资源不平衡,这是我们可以自动化rebalance一下所有的集群;

- 假如说集群的某个节点宕掉了,该节点的task怎么办呢?我们不会马上就把这个节点上的

task分配出去,会先等待10分钟,因为有的时候它可能只是短暂的连接超时,过一段时间后就会恢复,如果根据这个来做一次rebalance,可能这是不太值的。当等待10分钟后节点还是没有恢复,我们再做rebalance,将宕掉的节点任务分配到其他节点上;

源端的数据一致性,目前通过WAL的机制可以保证目的端的一致性; 大数据量下的同步优化以及提高同步的稳定性。

四、总结

大数据时代企业数据集成主要面临各种复杂的架构,应对这些复杂的系统对ETL的要求也越来越高。我们能做的就是需要权衡利弊选取一个符合业务需求的框架; Kafka Connect 比较适合对数据量大,且有实时性需求的业务; 基于Kafka Connect 优良特性可以依据不同的数据仓库特性来提高数据时效性和同步效率; DataPipeline针对目前企业在大规模实时数据流的痛点,进行了相关的改造和优化,首先数据端到端一致性的保证是几乎所有企业在数据同步过程中碰到的,目前已经做到基于kafka connect 的框架中 rebalance 中的优化和改造。

相关阅读:

三大方向预测大数据技术发展未来趋势

贵阳警方利用大数据技术打掉3个传销团伙

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读