解决spark streaming重复提交第三方jar包问题

版权声明:本文为博主原创,欢迎转载,转载请标明出处 Blog Address:http://blog.csdn.net/jsjsjs1789 https://blog.csdn.net/jsjsjs1789/article/details/82902292

背景:
由于spark streaming每次提交都需要上传大量jar包到hdfs,为节约HDFS资源,现只存一份来解决这个问题

组件:
CDH 5.13 spark2.2.x

针对cluster模式
对于spark streaming而言,第三方jar包是一个值得探讨的问题,相信大部分都是打的源码包,然后提交jar,想通过–jars $(echo sparklib0.10/*.jar | tr ’ ’ ‘,’) 这种方式,但这种方式有一个弊端就是每一个application都需要提交大量的jar包,
在这里插入图片描述
并且这些jar包有大部分是可以在多个application中公用的,故直接将这些公用jar传到HDFS上,然后通过

--jars $(`echo hadoop fs -ls hdfs://nameservice1/sparklib010/*.jar` |awk {'print $8'}| tr '\n' ',')

来进行提交,
在这里插入图片描述
非公共部分,可继续使用–jars来提交

--jars $(echo sparklib0.10/*.jar | tr ' ' ',')

整体上是这个样子的

--jars $(`echo hadoop fs -ls hdfs://nameservice1/sparklib010/*.jar` |awk {'print $8'}| tr '\n' ',') --jars  --jars $(echo sparklib0.10/*.jar | tr ' ' ',')

client模式
对于HDFS上的包,首次使用它会下载下来,然后在传上去,用不用公共包自行定夺喽
在这里插入图片描述

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2d706r5fp5lw8

猜你喜欢

转载自blog.csdn.net/jsjsjs1789/article/details/82902292
今日推荐