Springboot(2.0.0.RELEASE)+spark(2.1.0)框架整合到jar包成功發布(原創)!!!


一、前言

  首先說明一下,這個框架的整合可能對大神來說十分容易,但是對我來說十分不易,踩了不少坑。雖然整合的時間不長,但是值得來紀念下!!!我個人開發工具比較喜歡IDEA,創建的springboot的java工程再引入scala的library之后當前工程即可創建java文件又可創建scala文件,這個一個工程里可采用java+scala雙語言來開發。用了這個框架搭建成功后給我們開發spark代碼能帶來什么便利之處?

  1、springboot可以開發非web項目,與spark不相關的代碼可以采用java來開發,比如訪問數據庫,中間件等,用java十分便利。

  2、spark相關開發采用scala語言代碼量更少,開發效率更高。

  主要基於以上兩點,搭建這個框架還是具有不小的意義。

二、搭建過程

  1、利用maven引入springboot的基礎jar包

  2、利用maven引入spark相關jar包

  3、利用maven引入解決沖突的jar包

完整pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>

<groupId>ba</groupId>
<artifactId>SparkTest01</artifactId>
<version>1.0-SNAPSHOT</version>

<name>SparkTest01</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<spark.version>2.1.0</spark.version>
<hadoop.version>2.7.4</hadoop.version>
<springboot.version>2.0.0.RELEASE</springboot.version>
</properties>
<dependencies>
<!--spark框架開始-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--spark框架結束-->

<!--springboot開始 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>${springboot.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
<version>${springboot.version}</version>
</dependency>
<!-- springboot框架結束-->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--解決框架加載失敗 -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<!--解決框架加載失敗 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>

</dependencies>

<build>
<plugins>
<!-- springboot maven打包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

注意:1、黃色標記是作用是jar包沖突。
   2、青色標記是解決框架引入失敗的問題。
    
三、實測結果
  

 

 
        

 

 
        

 

四、打jar包發布至spark平台
 坑:將spark安裝包里的gson-2.2.4.jar從jars目錄移除!!!
 打包打用的spring-boot-maven-plugin插件,將jar放至spark服務器上,提交代碼時指定類為springboot的啟動代理類--class org.springframework.boot.loader.JarLauncher。以下是提交命令:
 spark-submit --class org.springframework.boot.loader.JarLauncher SparkStudy01-1.0-SNAPSHOT.jar

以下是運行的結果:

 







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM