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 张叫兽的技术研究院 阅读(1284) 评论(0) 编辑 收藏 举报