目錄
背景
Intellij idea開發Spark工程,本地依賴使用Maven進行管理,打包也是用Maven命令,依賴包需要和編譯後的源代碼同時包含到結果Jar包中。
正文
創建Maven工程
截圖如下,就是用原生的Maven工程,不要選擇下面其他的,scala和Java都是用原生Maven工程
填寫工程信息和工程名稱,截圖如下,按照需求填寫
創建之後的工程目錄和pom.xml文件,截圖如下
源代碼,和包管理需要創建在java源文件夾下面
pom.xml文件需要添加Spark依賴,和打Jar包插件,如下:
<?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>
<groupId>ts</groupId>
<artifactId>spark_art</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spark.version>2.1.0</spark.version>
<scala.version>2.10</scala.version>
<hadoop.version>2.6.0</hadoop.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_${scala.version}</artifactId>
<version>${spark.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!--這裏要替換成jar包main方法所在類-->
<mainClass>test.per.main.sparkSubmit</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<outputDirectory>out/assembly</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- 指定在打包節點執行jar包合併操作 -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
打包過程
點擊Views菜單欄->Windows-> Maven project ->點擊install
最後包含依賴的Jar將在路徑out/assembly下面
添加SCALA支持
添加scala支持的方式,因爲這樣創建的工程並不包含scala支持
直接在自己的package內創建文件,new File,文件命名爲xxxx.scala,點擊創建
然後IDE上方會出現設置Scala SDK的提示,點擊設置即可添加Scala支持
然後右鍵就會出現Scala文件了: