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 configurations.runtime
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 第1关:spark-submit提交 Spark-submitSpark的一个命令行工具,用于将Spark应用程序提交到集群上运行。使用spark-submit可以方便地将应用程序打成一个jar,并将其提交Spark集群上运行。在使用spark-submit时,需要指定应用程序的主类、jar的路径、应用程序的参数等信息。 要完成第1关,你需要学会如何使用spark-submit命令将一个简单的Spark应用程序提交到集群上运行。具体来说,你需要完成以下任务: 1. 编写一个简单的Spark应用程序,该程序可以读取一个文本文件,并对其中的单词进行计数。 2. 将该应用程序打成一个jar。 3. 使用spark-submit命令将该jar提交Spark集群上运行,并查看运行结果。 完成以上任务后,你就可以顺利通过第1关了。 ### 回答2: 第一关是Spark入门的开始,主要是通过spark-submit命令行提交一个Scala或Java程序到Spark集群运行。在开始前需要先安装好Spark和Java,并在环境变量中配置好相关路径。接下来的步骤如下: 1. 编写需提交运行的Scala或Java代码,并打成jar文件。 2. 打开终端,进入Spark安装目录的bin文件夹。 3. 输入命令spark-submit --class <main-class> --master <spark-master-url> <application-jar> <arguments>,其中需要填入以下参数: - <main-class>:Spark代码入口函数(main方法)的类的全路径 - <spark-master-url>:Spark Master节点的url,例如local[*]表示本地模式,spark://master:7077表示从远程Master节点提交 - <application-jar>:打好的应用jar文件路径 - <arguments>:运行应用程序必要的参数 4. 提交命令后,终端会显示运行的结果和日志信息,可以用来调试和查看程序运行情况。 通过第一关的训练,大家可以初步掌握Spark的命令行使用方法,并且了解Spark应用程序的开发和打流程。对于要进行大规模数据处理和分析的企业和个人来说,这是一个非常重要的基础知识,至关重要。 ### 回答3: Spark-submitSpark应用程序的提交工具,可以将应用程序提交Spark集群并使用Spark的资源,非常适合使用大规模的数据处理和分布式计算。Spark-submit支持的语言有Java, Scala, Python, R四种语言, 不管是本地模式,还是集群模式,都可以通过spark-submit提交应用程序。 Spark-submit的使用方法非常简单,只需要使用以下命令即可: ``` ./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <deploy-mode> \ --conf <key>=<value> \ ... # other options <application-jar> \ [application-arguments] ``` 其中,主要参数解释如下: - class:应用程序的主类名 - master:运行的master节点的URL - deploy-mode:是否在Client模式下运行 - conf:Spark配置选项 - application-jar:应用程序的jar路径 - application-arguments:应用程序的参数 需要注意的是,提交的应用程序必须含一个main方法作为入口,并将Spark环境初始化。在应用程序的main方法中,可以通过SparkContext和SparkConf类来配置Spark运行环境,并启动应用程序。 Spark-submit提交应用程序的过程中,会将jar依赖文件上传到集群中,并启动Driver程序。Driver程序负责将任务分发给Executor并协调任务执行过程,并在执行完成后收集结果。 总之,使用Spark-submit可以方便快捷地提交Spark应用程序,并能够高效利用Spark集群资源进行大规模的数据处理和分布式计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值