1. 程式人生 > >解決spark streaming重複提交第三方jar包問題

解決spark streaming重複提交第三方jar包問題

背景:
由於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上的包,首次使用它會下載下來,然後在傳上去,用不用公共包自行定奪嘍
在這裡插入圖片描述