1. 安装 IntelliJ IDEA
-
下载并安装 IntelliJ IDEA(推荐使用 Community 版本)。
-
官方下载地址:Download IntelliJ IDEA
-
2. 创建项目
-
打开 IntelliJ IDEA,选择 Create New Project。
-
选择项目类型:
-
在左侧选择 Java(或 Scala,如果你使用 Scala 编写 Spark 程序)。
-
在右侧选择 Maven 或 Gradle,推荐使用 Maven,因为它更常用。
-
-
配置项目:
-
Project SDK:选择已安装的 JDK(至少 1.8)。
-
Group ID 和 Artifact ID:根据你的项目需求填写,例如:
-
Group ID:
com.example
-
Artifact ID:
spark-demo
-
-
点击 Finish。
-
3. 添加 Spark 依赖
在 pom.xml
文件中添加 Spark 的 Maven 依赖。以下是一个简单的示例,适用于 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>spark-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spark.version>3.2.4</spark.version>
<hadoop.version>3.3.4</hadoop.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>
<!-- Hadoop HDFS -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
</dependency>
</dependencies>
</project>
4. 编写 Spark 程序
在 src/main/java
目录下创建一个 Java 类,编写一个简单的 Spark 程序。以下是一个计算 π 的示例:
package com.example;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.SparkConf;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class SparkPi {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("Spark Pi").setMaster("local[*]");
JavaSparkContext sc = new JavaSparkContext(conf);
int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<>();
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = sc.parallelize(l, slices);
int count = dataSet.map(i -> {
double x = new Random().nextDouble() * 2 - 1;
double y = new Random().nextDouble() * 2 - 1;
return (x * x + y * y < 1) ? 1 : 0;
}).reduce((a, b) -> a + b);
System.out.println("Pi is roughly " + 4.0 * count / n);
sc.close();
}
}
5. 配置运行环境
-
打开运行配置:
-
点击菜单栏的 Run -> Edit Configurations。
-
-
添加运行配置:
-
点击左上角的 + 按钮,选择 Application。
-
Name:输入运行配置名称,例如
SparkPi
。 -
Main class:选择
com.example.SparkPi
。 -
Program arguments:输入参数,例如
10
(表示计算 π 的精度)。 -
Use classpath of module:选择你的项目模块。
-
VM options(可选):根据需要添加 JVM 参数,例如
-Xmx2g
。
-
-
点击 OK 保存配置。
6. 运行 Spark 程序
-
点击 Run 按钮运行程序。
-
如果一切配置正确,你将看到类似以下的输出:
Pi is roughly 3.14159
7. 提交到集群(可选)
如果你需要将程序提交到 Spark 集群运行,可以使用以下命令:
spark-submit --class com.example.SparkPi --master yarn --deploy-mode cluster target/spark-demo-1.0-SNAPSHOT.jar 10
注意事项
-
依赖版本匹配:确保 Spark 和 Hadoop 的版本与集群环境一致。
-
环境变量:如果需要,可以在 IntelliJ IDEA 中配置环境变量,例如
SPARK_HOME
和HADOOP_HOME
。 -
集群配置:如果运行在集群上,需要在代码中将
setMaster("local[*]")
替换为集群的 Master 地址,例如setMaster("yarn")
。