如何在idea中写spark程序。

在 IntelliJ IDEA 中开发 Spark 程序需配置环境、创建项目并添加依赖,以下是详细步骤:

一、准备环境

  1. 安装 Java/Scala
  • 确保已安装 JDK 1.8+(Spark 3.x 推荐 JDK 11+)和 Scala SDK(版本与 Spark 兼容,如 Spark 3.3.2 对应 Scala 2.12)。

  • 在 IDEA 中配置:

  • 打开 File > Project Structure > SDKs ,添加 JDK 和 Scala SDK。

  1. 下载 Spark 依赖
  • 访问 Maven Repository 搜索 spark-core_2.12 和 spark-sql_2.12 (根据 Scala 版本选择),记录最新版本号(如 3.3.2 )。

二、创建 Maven 项目

  1. 新建项目
  • 打开 IDEA,选择 Create New Project > Maven > Empty Project ,设置项目路径和名称(如 spark-demo )。
  1. 添加 Maven 依赖

修改 pom.xml ,添加 Spark 依赖(注意排除 Hadoop 依赖,避免版本冲突):

xml

<dependencies>

<!-- Spark Core -->

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-core_2.12</artifactId>

<version>3.3.2</version>

<!-- 本地开发时添加,打包部署需移除 -->

<scope>provided</scope>

</dependency>

<!-- Spark SQL(可选) -->

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-sql_2.12</artifactId>

<version>3.3.2</version>

<scope>provided</scope>

</dependency>

</dependencies>

  • scope=provided 表示本地开发时使用已安装的 Spark 环境,打包时不包含依赖(部署时需依赖集群的 Spark 运行时)。

三、配置 Spark 运行环境

  1. 下载 Spark 二进制包
  • 从 Spark 官网 下载对应版本的预编译包(如 spark-3.3.2-bin-hadoop3 ),解压到本地(如 C:\spark )。
  1. 设置环境变量
  • 在系统环境变量中添加 SPARK_HOME=C:\spark ,并将 %SPARK_HOME%\bin 添加到 PATH 中。
  1. IDEA 中配置 Spark 路径
  • 打开 File > Settings > Build, Execution, Deployment > Application Servers ,添加 Spark 路径(指向解压后的 spark-3.3.2-bin-hadoop3 目录)。

四、编写 Spark 程序

  1. 创建 Scala 类
  • 在 src/main/scala 目录下创建包(如 com.example ),新建 Scala 类(如 WordCount.scala )。
  1. 编写代码示例(WordCount)

scala

import org.apache.spark

{SparkConf, SparkContext}

object WordCount {

def main(args: Array[String]): Unit = {

// 配置 Spark

val conf = new SparkConf()

.setAppName("WordCount")

.setMaster("local[*]") // 本地调试用,部署时改为 "yarn" 或 "spark://master:7077"

val sc = new SparkContext(conf)

// 读取文本文件

val lines = sc.textFile("input.txt")

val words = lines.flatMap(_.split(" "))

val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _)

// 保存结果

wordCounts.saveAsTextFile("output")

sc.stop()

}

}

  • 关键说明:

  • setMaster("local[*]") 用于本地调试,代表使用本地所有线程。

  • 实际部署时需移除 setMaster ,或改为集群地址(如 yarn 或 spark://master:7077 )。

五、本地调试运行

  1. 配置运行参数
  • 点击 IDEA 右上角 Edit Configurations > + > Application ,设置:

  • Main Class:填入主类全路径(如 com.example.WordCount )。

  • VM Options(可选):添加 -Dspark.driver.host=localhost 避免网络问题。

  1. 运行程序
  • 将测试文件(如 input.txt )放在项目根目录或指定路径,点击运行按钮,结果会输出到指定目录(如 output )。

六、打包与部署

  1. 打包成 JAR
  • 在 pom.xml 中添加打包插件:

xml

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-assembly-plugin</artifactId>

<version>3.1.0</version>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

</configuration>

<executions>

<execution>

<id>make-assembly</id>

<phase>package</phase>

<goals>

<goal>single</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

  • 执行 mvn clean package 生成 spark-demo-1.0-SNAPSHOT-jar-with-dependencies.jar 。
  1. 提交到集群

bash

spark-submit \

--master yarn \

--deploy-mode cluster \

--class com.example.WordCount \

/path/to/your/jar/spark-demo-1.0-SNAPSHOT-jar-with-dependencies.jar

常见问题

  • 依赖冲突:若出现 ClassNotFoundException ,检查 Maven 依赖版本是否与集群 Spark 一致。

  • 本地调试失败:确保 setMaster("local[*]") 正确,且文件路径为本地绝对路径。

  • Scala 版本不兼容:在 pom.xml 中确认 artifactId 与 Scala 版本匹配(如 spark-core_2.12 对应 Scala 2.12)。

相关推荐
麻芝汤圆10 分钟前
在 Sheel 中运行 Spark:开启高效数据处理之旅
大数据·前端·javascript·hadoop·分布式·ajax·spark
Eternity......1 小时前
如何在idea中写spark程序
大数据·spark
lix的小鱼1 小时前
在sheel中运行Spark
大数据·分布式·spark
Aaaa小嫒同学1 小时前
spark local模式
大数据·分布式·spark
猪猪果泡酒2 小时前
Spark,配置历史服务
大数据·分布式·spark
anqi272 小时前
在sheel中运行Spark
大数据·开发语言·分布式·后端·spark
乌恩大侠3 小时前
【东枫科技】代理销售 NVIDIA DGX Spark 您的桌上有一台 Grace Blackwell AI 超级计算机。
大数据·人工智能·科技·spark·nvidia
计算机人哪有不疯的12 小时前
如何搭建spark yarn模式集群的集群
大数据·分布式·spark
6.9416 小时前
Spark,配置hadoop集群1
java·hadoop·spark