spark-submit提交最小包方式运行,与第三方依赖分离

通常使用spark-submit 提交任务时,是把第三方依赖与项目代码打成一个很大的jar包来运行,比如sbt-assembly。其实这样很不方便,每次改了代码,需要很长的打包时间,上传服务器也慢,还可能出现 Can’t open so many files的问题

  • 常见的打可执行包方式有3种

    • 1.所有第三方依赖和项目自身代码打成一个,且第三方依赖全部解压为class文件,例如sbt-assembly
    • 2.项目自身代码打成很小的jar包,同级生成一个lib目录,lib下面为所有第三方依赖包,同样以lib包形式存在;maven 插件, gradle 自定义task均可实现
    • 3.项目自身打成jar包,第三方依赖与项目同级,也是以jar包形式存在,以gradle的,apply plugin: ‘application’ 为例。
  • 第2种方式是spark-submit中,我们比较想利用的,在没有引入新的依赖情况下,更新代码,每次只需要上传一个很小的jar包

  • 下面以gradle 为例,实现此次打包提交,核心利用的spark-submit 的 –jars 参数
    • 在gradle 中,添加任务
jar {
    String someString = ''
    configurations.runtime.each {someString = someString + " lib//"+it.name}
    manifest {
        attributes 'Main-Class': 'com.kylin.assembly.spark.sql.WordCountInSpark2'
        attributes 'Class-Path': someString
    }
}
//清除上次的编译过的文件
task clearPj(type:Delete){
    delete 'build','target'
}
task copyJar(type:Copy){
    from config
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值