1. 环境准备
安装 IntelliJ IDEA:从 JetBrains 官网下载并安装适合你操作系统的 IntelliJ IDEA 版本,建议使用社区版或旗舰版。
安装 Java 开发环境 :确保系统中已安装 Java 开发工具包(JDK),建议使用 Java 8 及以上版本,并配置好 JAVA_HOME
环境变量。
安装 Scala 插件 :若要使用 Scala 编写 Spark 程序,需在 IntelliJ IDEA 中安装 Scala 插件。打开 IntelliJ IDEA,依次选择 File
-> Settings
(Windows/Linux)或 IntelliJ IDEA
-> Preferences
(Mac),在左侧菜单中选择 Plugins
,在搜索框中输入 "Scala",然后点击 Install
进行安装。
2. 创建新项目
2.1 创建 Maven 项目
打开 IntelliJ IDEA,选择 File
-> New
-> Project
。
在左侧面板选择 Maven
,确保 JDK 版本正确配置,点击 Next
。
填写 GroupId
、ArtifactId
等项目信息,点击 Next
。
选择项目存储路径,点击 Finish
。
2.2 配置 Maven 依赖
打开项目中的 pom.xml
文件,添加 Spark 相关依赖。以下是一个基本的依赖配置示例:
<dependencies>
<!-- Spark Core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.3.2</version>
</dependency>
<!-- Spark SQL -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.3.2</version>
</dependency>
</dependencies>
根据实际需求,你还可以添加其他 Spark 模块的依赖,如 spark-streaming
等。
3. 编写 Spark 程序
3.1 使用 Java 编写 Spark 程序
在 src/main/java
目录下创建 Java 类,例如 SparkWordCount.java
,示例代码如下:
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;
import java.util.Arrays;
public class SparkWordCount {
public static void main(String[] args) {
// 创建 SparkContext
JavaSparkContext sc = new JavaSparkContext("local", "WordCount");
// 读取文本文件
JavaRDD<String> lines = sc.textFile("path/to/your/textfile.txt");
// 分割单词
JavaRDD<String> words = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator());
// 映射为 (单词, 1) 键值对
JavaPairRDD<String, Integer> pairs = words.mapToPair(word -> new Tuple2<>(word, 1));
// 统计单词出现次数
JavaPairRDD<String, Integer> counts = pairs.reduceByKey(Integer::sum);
// 输出结果
counts.collect().forEach(System.out::println);
// 关闭 SparkContext
sc.stop();
}
}
3.2 使用 Scala 编写 Spark 程序
在 src/main/scala
目录下创建 Scala 类,例如 SparkWordCount.scala
,示例代码如下:
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SparkWordCount {
def main(args: Array[String]) {
// 创建 SparkConf
val conf = new SparkConf().setAppName("WordCount").setMaster("local")
// 创建 SparkContext
val sc = new SparkContext(conf)
// 读取文本文件
val lines = sc.textFile("path/to/your/textfile.txt")
// 分割单词
val words = lines.flatMap(_.split(" "))
// 映射为 (单词, 1) 键值对
val pairs = words.map(word => (word, 1))
// 统计单词出现次数
val counts = pairs.reduceByKey(_ + _)
// 输出结果
counts.collect().foreach(println)
// 关闭 SparkContext
sc.stop()
}
}
4. 运行 Spark 程序
本地模式运行 :在 IDE 中直接运行 main
方法,程序会以本地模式运行,适合开发和调试。
集群模式运行 :将项目打包成 JAR 文件,使用 spark-submit
命令提交到 Spark 集群运行。在项目根目录下执行以下 Maven 命令打包:
mvn clean package
然后使用 spark-submit
命令提交 JAR 文件:
spark-submit --class com.example.SparkWordCount --master yarn --deploy-mode cluster /path/to/your/jarfile.jar
5. 注意事项
确保 textFile
方法中的文件路径在本地或 HDFS 中存在。
若使用集群模式运行,需根据实际情况调整 spark-submit
命令的参数,如 --master
、--deploy-mode
等。