SparkSQL提高read读取数据的并行度

本文讲述了如何通过合理配置Spark的分区策略,将1800万数据从Hologres高效推送到Es,减少任务运行时间至2分钟,关键在于选择合适的分区字段和数量,避免数据倾斜,有效解决了并行度低和Excutor宕机问题。

背景

        1,前几天接了一个公司任务,把数据从Hologres推到Es,因为业务需求需要每十分钟调度一次且往Es写数据之前还要经过一步从Holo的查询关联其他属性。

资源

        数据量:result表:(1800万)

                      配置表:(50万)

       spark:Driver:核心数(1个)

                                内存数(1G)

                   Excutor:核心数(2个)

                                   数量(2个)

                                   内存数(4G)

出现的问题

        程序写完任务运行时间是半小时级别,中间的优化手段,主要有序列化,小表缓存,大表join小表时使用mapjoin,通过casewhen代替join等手段,但是通过SparkUI定位时发现一只有一个task(并行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值