spark减少提交jar包处理

  spark一个应用,算上依赖一百多兆。每一次都如此,坑。
  首先是<packing>jar</packing>这只为打包为jar,在plugin中增加一个assembly插件,这个插件将会生成一个全包(包括用户代码以及全部依赖)细节见文末,配置的打包将会生成一个只有用户代码的jar包。
  将全包以及用户代码上传到服务器上面,然后注释掉assembly部分;这样每次只是生成用户代码的jar包;
  spark提交:
   spark-submit --master yarn --name cmCuCustomer --jars bigdata-stat-3.2.1-jar-with-dependencies.jar --class com.cmiot.WriteToHBase bigdata-stat-3.2.1.jar
  --jar后面跟的是全包(bigdata-stat-3.2.1-jar-with-dependencies.jar ),最后一个参数是用户代码生成的jar包(bigdata-stat-3.2.1.jar)
  全包和用户代码包只需要上传到执行spark-submit指令的服务器即可。真正执行过程spark会拷贝到work node上面的。
附录:maven的打包assembly配置:

 1 <plugin>
 2                 <groupId>org.apache.maven.plugins</groupId>
 3                 <artifactId>maven-assembly-plugin</artifactId>
 4                 <version>${maven.assembly.version}</version>
 5                 <configuration>
 6                     <descriptorRefs>
 7                         <descriptorRef>jar-with-dependencies</descriptorRef>
 8                     </descriptorRefs>
 9                     <archive>
10                         <manifest>
11                             <mainClass>com.cmiot.StatsApp</mainClass>
12                         </manifest>
13                     </archive>
14                 </configuration>
15                 <executions>
16                     <execution>
17                         <phase>package</phase>
18                         <goals>
19                             <goal>single</goal>
20                         </goals>
21                     </execution>
22                 </executions>
23 </plugin>

 

posted on 2017-11-19 22:19  下士闻道  阅读(1282)  评论(0编辑  收藏  举报

导航