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

作者: shengjk1 | 来源:发表于2019-03-31 11:02 被阅读5次

    背景:
    由于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上的包,首次使用它会下载下来,然后在传上去,用不用公共包自行定夺喽

    在这里插入图片描述

    相关文章

      网友评论

        本文标题:解决spark streaming重复提交第三方jar包问题

        本文链接:https://www.haomeiwen.com/subject/qjyybqtx.html