sparksql小文件生成过多,导致job之间任务出现大量空白时间

由于时间久远。该问题十分具有代表性。所以今天将其记录一下。

本人使用的是华为C70集群,spark1.5.1的版本,由于版本问题。原先批处理一个小时的程序变慢一倍。达到2小时的处理时长。以jstack和jstat的方式大量观察,排除了gc和oom的问题。
那么问题到底出在哪里?

截图为内网。我无法拿出来。
我用语言描述一下:

即为可以从spark UI界面观察得出。job界面中 多个stage之间存在了很多空白时间!以下这个图是百度的。就是放这里图个感觉哈哈~~

在这里插入图片描述可以得出每个stage的提交时间和运行时间。但是我的程序当中。即便提交时间+运行时间与下一个stage之间差了几分钟之差,并且跑到大表会更长,小表会短一点,所以就去排查日志。driver的日志是正常的。没有任何报错和延迟信息。我就去查节点网络的io问题,去ping然后查丢包。结果也是正常,到底是什么原因呢??到底空白时间在做什么?


经过去具体某个节点点开excutor的日志查询,发现底部有大量类似于
deleting …
replacing…
相关字眼。而且info信息的时间戳恰好对应了空白时间的区域。
我去查了相关源码才得知。

当写入hive时候。即便是sparksql任务已经完成。底部还是在进行对hfile块文件,大量的搬运复制,删除操作。由于增量与全量的合并。每次全量的hfile都要进行一次这种hfile相关的大量操作。而其原因是由于底层该表的小文件个数较多。导致系统需要操作就随之变多。回到spark1.5.1,sparksql shuffle过程会产生大量小文件而且,如果不加以控制。全量表的小文件会越来越多。进一步延长程序时间。所以在诊断出这类问题以后,采用coalesce方式动态根据表的数据量控制分区数。
进行减少dataframe的分区的操作,解决了该类问题。此问题是在3个月之前出现的。所以以此记录。让后人减少爬坑时间。


最终数百个stage 每个缩短了具体数分钟的时长。原先程序又恢复了运行1小时的时长。

问题说的不是很好。如果有小伙伴出现这类问题,可以咨询我。
内网工作。截图和相关信息无法贴出。望见谅!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]中的信息,xxl-job是一个分布式定时任务框架,可以解决一些传统定时任务框架的问题。然而,根据引用\[3\]中的描述,xxl-job的cron时间可能导致不能新增定时任务。具体来说,xxl-job的cron时间是指定任务执行的时间表达式,如果设置不正确,可能导致任务无法正常新增。 要解决这个问题,可以检查cron时间表达式是否正确。可以参考引用\[2\]中的代码示例,使用DateUtils.formatDate方法来格式化cron时间,确保它的格式是正确的。另外,还可以参考xxl-job的官方文档或者寻求相关技术支持,以获取更详细的解决方案。 总结起来,如果xxl-job的cron时间导致不能新增定时任务,可以检查cron时间表达式是否正确,并参考官方文档或寻求技术支持来解决问题。 #### 引用[.reference_title] - *1* [xxl-job定时任务](https://blog.csdn.net/m0_49790240/article/details/122717201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [分布式定时任务xxljob](https://blog.csdn.net/weixin_45613222/article/details/129222029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [22-09-29 西安 谷粒商城(07)分布式定时任务xxl-job、Cron表达式、springTask定时任务、订单业务](https://blog.csdn.net/m0_56799642/article/details/127109242)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值