1. 安装 IntelliJ IDEA
-
下载并安装 IntelliJ IDEA(推荐使用 Community 版本,对于大多数 Spark 开发需求已经足够)。
-
安装完成后启动 IDEA。
2. 创建项目
2.1 创建 Maven 项目
-
打开 IntelliJ IDEA,选择 File -> New -> Project。
-
在弹出的窗口中选择 Maven ,然后点击 Next。
-
输入项目名称(例如
SparkDemo
)、项目位置等信息,点击 Finish。
2.2 配置 Maven 依赖
在项目的 pom.xml
文件中添加 Spark 相关的依赖。以下是一个基本的 pom.xml
示例,适用于 Spark 3.x 和 Hadoop 3.x 的组合:
<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>com.example</groupId>
<artifactId>SparkDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<spark.version>3.4.1</spark.version>
<hadoop.version>3.3.4</hadoop.version>
<scala.version>2.12.18</scala.version>
</properties>
<dependencies>
<!-- Spark Core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- Spark SQL -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- Hadoop Common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
</dependency>
<!-- Scala -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Scala Plugin -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.7.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Maven Compiler Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
- 保存
pom.xml
文件后,IDEA 会自动下载并加载依赖。
3. 编写 Spark 程序
3.1 创建 Scala 类
-
在项目中右键点击
src/main/scala
文件夹,选择 New -> Scala Class。 -
输入类名(例如
WordCount
),点击 OK。
3.2 编写代码
以下是一个简单的 WordCount 程序示例,使用 Spark 的 RDD API:
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
// 创建 Spark 配置和上下文
val conf = new SparkConf()
.setAppName("WordCount")
.setMaster("local[*]") // 本地模式,使用所有可用核心
val sc = new SparkContext(conf)
// 设置日志级别
sc.setLogLevel("WARN")
// 读取文本文件
val inputPath = "input.txt" // 替换为实际输入文件路径
val textFile = sc.textFile(inputPath)
// 执行 WordCount
val wordCounts = textFile
.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
// 保存结果
val outputPath = "output" // 替换为实际输出路径
wordCounts.saveAsTextFile(outputPath)
// 停止 SparkContext
sc.stop()
}
}
4. 配置运行环境
4.1 配置运行配置
-
右键点击
WordCount.scala
文件,选择 Run 'WordCount.main()'。 -
在弹出的运行配置窗口中,确保
Use classpath of module
选项已选中当前模块。 -
如果需要指定输入文件路径和输出路径,可以在
Program arguments
中添加参数,例如:input.txt output
-
点击 OK 保存运行配置。
4.2 运行程序
点击运行按钮(绿色三角形)运行程序。如果一切配置正确,程序将执行 WordCount 任务,并将结果保存到指定的输出路径。
5. 调试程序
如果需要调试程序:
-
在代码中设置断点。
-
右键点击
WordCount.scala
文件,选择 Debug 'WordCount.main()'。 -
使用调试工具逐步执行代码,查看变量值和程序状态。
6. 提交到 Spark 集群
如果需要将程序提交到 Spark 集群运行:
-
修改代码中的
setMaster
方法,将local[*]
替换为集群的 Master 地址,例如:.setMaster("spark://master:7077")
-
使用
spark-submit
命令提交程序:spark-submit --class WordCount --master spark://master:7077 target/SparkDemo-1.0-SNAPSHOT.jar input.txt output
注意事项
-
确保本地环境(如 Java、Scala、Maven)已正确安装并配置。
-
如果使用集群运行,确保集群的 Spark 和 Hadoop 版本与项目依赖一致。
-
如果需要使用其他 Spark 组件(如 Spark Streaming、MLlib 等),请在
pom.xml
中添加相应的依赖。