目录
背景
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文件了: