springboot整合sparkstreaming maven打包,多种方式运行main方法
·
一 最简单的springboot的jar包pom.xml配置,如果是idea要配置artifact
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二 spark提交jar包指定main方法运行
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<keepDependenciesWithProvidedScope>false</keepDependenciesWithProvidedScope>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>\*:\*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transforme
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transforme>
<transforme
implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
<resource>META-INF/spring.factories</resource>
</transforme>
<transforme
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transforme>
<transforme
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transforme
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.suncnpap.etl.kafka.consumer.KafkaConsumer10</mainClass>
</transforme>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
2.1 spark-submit提交
spark-submit --class xxx.KafkaConsumer11 --master local gzspbd-etl-1.0.0.jar
2.2 报错DSA RSA SF之类的,使用命令
yum install -y zip
zip -d gzspbd-etl-1.0.0.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
2.3 再次执行spark-submit就行了
三 直接使用java -jar执行指定main 方法,pom.xml
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org.springframework.boot.loader.PropertiesLauncher</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
3.1 启动sparkstreaming消费kafka写入mongodb或者es正常
java -jar -Dloader.main=xxx.KafkaConsumer10 gzspbd-etl-1.0.0.jar
3.2 启动springboot web服务异常,懒得解决,用第一种方式就完了
java -jar -Dloader.main=com.suncnpap.etl.EtlApplication gzspbd-etl-1.0.0.jar --spring.config.location=bootstrap.yml
四 可以同时启动springboot项目和里面main方法的配置pom.xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
4.1 启动springboot 指定编码,因为nacos配置文件问题
java -jar -Dfile.encoding=utf-8 gzspbd-etl-1.0.0.jar
4.2 启动指定main方法 不用指定编码
java -jar -Dloader.main=xxx.KafkaConsumer10 gzspbd-etl-1.0.0.jar
更多推荐
所有评论(0)