背景
1,前几天接了一个公司任务,把数据从Hologres推到Es,因为业务需求需要每十分钟调度一次且往Es写数据之前还要经过一步从Holo的查询关联其他属性。
资源
数据量:result表:(1800万)
配置表:(50万)
spark:Driver:核心数(1个)
内存数(1G)
Excutor:核心数(2个)
数量(2个)
内存数(4G)
出现的问题
程序写完任务运行时间是半小时级别,中间的优化手段,主要有序列化,小表缓存,大表join小表时使用mapjoin,通过casewhen代替join等手段,但是通过SparkUI定位时发现一只有一个task(并行

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

被折叠的 条评论
为什么被折叠?



