环境搭建
- 创建Maven项目
- 添加Spark依赖(在 pom.xml 中):
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.5.0</version>
</dependency>
- 配置Scala SDK
- 在IDEA中安装Scala插件,设置项目SDK为Scala版本(如2.12)
编写第一个Spark程序
- 创建Scala类
import org.apache.spark.{SparkConf, SparkContext}
object SparkWordCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("WordCount").setMaster("local[*]")
val sc = new SparkContext(conf)
val text = sc.textFile("input.txt")
val words = text.flatMap(_.split(" "))
val counts = words.map(word => (word, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("output")
sc.stop()
}
}
运行与调试
-
本地调试:设置 setMaster("local[*]") ,直接在IDEA中运行主类。
-
提交到集群:
-
打包项目为JAR(Maven的 package 命令)。
-
执行命令:
spark-submit --master yarn --class SparkWordCount /path/to/your.jar hdfs://input.txt
常见问题
-
依赖冲突:确保Spark和Hadoop版本兼容,使用 provided scope排除冲突依赖。
-
日志配置:在 src/main/resources 添加 log4j.properties ,简化日志输出。