减少spark job jar包的大小

来源:互联网 发布:js调用android代码 编辑:程序博客网 时间:2024/05/16 12:58

利用java写spark job,工程结构为maven,每次生成的jar都比较大。
spark job 包过大带来以下缺点:打包时间长、jar包上传慢、job启动比较慢。
本文介绍jar包瘦身方法:
观察臃肿的jar包,发现大部分都是spark相关的jar比较大,因此打包时去掉即可。

  • 首先,缓存spark-assembly 包到hdfs,方法见本文。
  • 然后, 修改代码工程的pom文件,将spark相关的dependencyscope 修改为 provided 例如:
    一下依赖都可改为修改为provided (默认为compile)

        <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-core_2.10</artifactId>        <version>${spark.version}</version>        <scope>provided</scope>    </dependency>    <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-streaming_2.10</artifactId>        <version>${spark.version}</version>        <scope>provided</scope>    </dependency>    <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-streaming_2.10</artifactId>        <version>${spark.version}</version>        <scope>provided</scope>    </dependency>    <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-sql_2.10</artifactId>        <version>${spark.version}</version>        <scope>provided</scope>    </dependency>    <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-hive_2.10</artifactId>        <version>${spark.version}</version>        <scope>provided</scope>    </dependency>
  • 验证,再次打包 发现已经从150M变成了20M左右,减肥成功。提交到集群运行正常如初。

0 0
原创粉丝点击