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)// 执行 WordCountval wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)// 保存结果val outputPath = "output" // 替换为实际输出路径wordCounts.saveAsTextFile(outputPath)// 停止 SparkContextsc.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
中添加相应的依赖。