spark 调优(四):瘦身任务主体
大家好,我是怀瑾握瑜,一只大数据萌新,家有两只吞金兽,嘉与嘉,上能 code 下能 teach 的全能奶爸
如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~
1. 起因
刚接触大数据的时候,第一个接手的项目,好家伙,上来就打成一个 zip 包,200 多 M,每次打包需要等半天,每次提交 azakaban 看着缓慢的进度条,痛苦万分,每次给别人发包也是等进度条等的花都谢了。
2.优化开始
等到可以重构工程了,这个问题必须上手解决。
2.1 拆包
把工程重新架构一下,按功能区分项目,共同的东西单独一个子工程。
2.2 提出脚本公共设置参数
原始代码中每个任务参数不固定,顺序不固定,并且配置文件位置也不固定,给排查问题造成很大困扰,优化后所有的参数必须统一格式,所有通用的信息都可以外部指定。
尤其是把数据库作为外部参数切必输,给后续多业务多版本运行提供的基础支撑。
版本号更多是为了后续优化做规范管理。
2.3 从 jar 包中抽离静态文件到 HDFS 上
原本工程非常巨大,最大的原因就是引用的 jar 包都在本地,而且每次提交任务都需要拉取这些文件,也是浪费时间,所以这边从 jar 包中非子工程的 jar 包都放到 hdfs 上面,让任务本体大幅度减少,并且设定了版本号,方便多版本同时运行时互不冲突。
这样优化后,主任务包从 200M 被直接砍到 10M,上传 azkaban 也是眨眼的事。
结束语
如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~
可关注公众号【怀瑾握瑜的嘉与嘉】,获取资源下载方式
版权声明: 本文为 InfoQ 作者【怀瑾握瑜的嘉与嘉】的原创文章。
原文链接:【http://xie.infoq.cn/article/1401b3de87e9f0f6a6ad96ba1】。文章转载请联系作者。
评论