Wormhole、MergeDelta优化

本文详细介绍了对Wormhole和MergeDelta的优化措施,包括:当wormhole传输数据量为0时,避免全量hive表的merge操作;优化hive日志输出;重构HdfsWriter以延迟建立文件;调整MysqlReader和MysqlWriter以提高效率,并解决了创建LZO索引时的错误问题。此外,还对JVM启动参数进行了调整,以减少垃圾收集的频率和时间。
摘要由CSDN通过智能技术生成

mergedelta优化点

1.不带分区的全量hive表,如果wormhole传输数据量为0,即没有更新数据时,不需要进行merge操作

2.优化hive log输出

---------------------------------------------------------------------------------------------------------------------------------------

说明:经统计, 目前全量且wormhole传输量为0的任务实例,一天大概在350个左右。一般merge操作需要5-20分钟,数据量越大越耗时,集群忙碌时越耗时(merge是个MapReduce程序)。对于全量表,如果没有更新数据,执行merge操作是多余的,因此可以优化掉这一过程,能节约时间和集群资源。

方案:在运行完wormhole时,如果是全量表,获取delta表对应hdfs目录下文件大小,如果是0则直接返回即可。有一个问题,由于wormhole一般使用LZO格式写入,使得即使传输数据量为0,在目录下然后会产生多个LZO文件,虽然里面没有实际数据但每一个文件仍会占用40字节大小,导致即使没数据目录下文件大小还是不为0,因此需要修改wormhole相关代码来配合此优化。


wormhole优化点

1.重构HdfsWriter;延迟建立文件,有数据要写入hdfs时才创建文件;调整建LZO索引、add partition失败重试逻辑。

2.创建缓存行时,允许指定包含的字段数;从mysql读取时,根据ResultSet包含的字段数创建相应大小的行

3.重构MysqlReader;分段时存储所有分段完整SQL优化为只需存储上下限值;使用PreparedStatement替代Statement

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值