在编写spark相关的文章的时候,准备把本地打包的程序部署到服务器上,结果始终打包有问题,总结下出现的问题主要有:
1、打包的代码上传上去找不到类 2、打包上去的代码运行时出现版本异常
因此这里我把scala编写的spark程序的maven打包的plugin统一发一下,后面使用的时候大家可以直接用到。(确实很久没有写代码了,spark相关的应用程序开发很多内容都忘记了。正好今年有时间把相关的知识点再总结起来。备注:上一次写spark程序还是在2017年,现在都已经2022年底了。)
在这里打包的话,使用的plugin内容是:
<build> <sourceDirectory>src/main/scala</sourceDirectory> <plugins> <plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaVersion>2.12.15</scalaVersion> <args> <arg>-target:jvm-1.5</arg> </args> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
使用这里的打包的话需要注意几个问题:
1、这里的scala版本需要同服务器保持一致,如果服务器是运行scala的程序,则版本需要和安装环境的scala版本保持一致,如果服务器端是spark集群,则这里的scala版本也需要和服务器端的spark集群的scala版本保持一致。
还没有评论,来说两句吧...