写点什么

spark 调优(四):瘦身任务主体

  • 2022 年 7 月 08 日
  • 本文字数:718 字

    阅读完需:约 2 分钟

大家好,我是怀瑾握瑜,一只大数据萌新,家有两只吞金兽,嘉与嘉,上能 code 下能 teach 的全能奶爸

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~



1. 起因

刚接触大数据的时候,第一个接手的项目,好家伙,上来就打成一个 zip 包,200 多 M,每次打包需要等半天,每次提交 azakaban 看着缓慢的进度条,痛苦万分,每次给别人发包也是等进度条等的花都谢了。

2.优化开始

等到可以重构工程了,这个问题必须上手解决。

2.1 拆包

把工程重新架构一下,按功能区分项目,共同的东西单独一个子工程。


project|-XXX-api|-xxx-common|-xxx-context|-xxx-业务
复制代码

2.2 提出脚本公共设置参数

原始代码中每个任务参数不固定,顺序不固定,并且配置文件位置也不固定,给排查问题造成很大困扰,优化后所有的参数必须统一格式,所有通用的信息都可以外部指定。


spark入参:主方法,flow,数据库,运行日期,配置文件,队列,版本号,结束日期
复制代码


尤其是把数据库作为外部参数切必输,给后续多业务多版本运行提供的基础支撑。


版本号更多是为了后续优化做规范管理。

2.3 从 jar 包中抽离静态文件到 HDFS 上

原本工程非常巨大,最大的原因就是引用的 jar 包都在本地,而且每次提交任务都需要拉取这些文件,也是浪费时间,所以这边从 jar 包中非子工程的 jar 包都放到 hdfs 上面,让任务本体大幅度减少,并且设定了版本号,方便多版本同时运行时互不冲突。


/bin/spark-submit-jars hdfs:///xx/java/lib/${version}/*.jar
复制代码


这样优化后,主任务包从 200M 被直接砍到 10M,上传 azkaban 也是眨眼的事。



结束语

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~

可关注公众号【怀瑾握瑜的嘉与嘉】,获取资源下载方式

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2022.07.01 加入

还未添加个人简介

评论

发布
暂无评论
spark调优(四):瘦身任务主体_spark_怀瑾握瑜的嘉与嘉_InfoQ写作社区