在IDEA运行spark程序(搭建Spark开发环境)

本文详细指导如何在Linux上搭建Hadoop和Spark分布式集群环境,以及如何在IDEA中配置开发环境,包括JDK、IDEA、Scala、Scala插件、Maven的安装与配置,以及如何在POM.xml中添加Spark依赖和编写Spark程序示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       建议大家写在Linux上搭建好Hadoop的完全分布式集群环境和Spark集群环境,以下在IDEA中搭建的环境仅仅是在window系统上进行spark程序的开发学习,在window系统上可以不用安装hadoop和spark,spark程序可以通过pom.xml的文件配置,添加spark-core依赖,可以直接在IDEA中编写spark程序并运行结果。

一、相关软件的下载及环境配置

1.jdk的下载安装及环境变量配置(我选择的版本是jdk8.0(即jdk1.8),建议不要使用太高版本的,不然配置pom.xml容易报错)

链接:https://pan.baidu.com/s/1deXf6pgMiRca1O724fUOxg 
提取码:sxuy

双击安装包,一直“Next”即可,最好不要安装到C盘,中间修改一下安装路径即可,最后点击“Finish”。我将jdk1.8安装在了D盘目录下的soft文件夹,bin路径如下:

配置环境变量:

win+R打开命令窗口输入:javac -verison ,进行检测是否成功配置环境变量:

2.IDEA的下载安装(我选择的版本是2019.2.3,建议选择低版本的IDEA)

官网下载地址:IntelliJ IDEA – 领先的 Java 和 Kotlin IDE (jetbrains.com.cn)

3.scala的下载(我选择的版本是2.12.15)安装及环境变量的配置

官网下载地址:The Scala Programming Language (scala-lang.org)

双击打开下载好的安装程序,一直“Next”即可,最好不要安装到C盘,中间修改一下安装路径即可,最后点击“Finish”。我将scala软件安装在了D盘目录下的Develop文件夹,bin路径如下:

配置scala的系统环境变量,将scala安装的bin目录路径加入到系统环境变量path中:

win+R打开命令窗口输入:scala -verison ,进行检测是否成功配置环境变量:

4.scala插件(版本要与IDEA版本保持一致,下载2019.2.3版本)的下载安装

官网地址:Scala - IntelliJ IDEs Plugin | Marketplaceicon-default.png?t=N7T8https://plugins.jetbrains.com/plugin/1347-scala/versions/stable

下载完成后,将下载的压缩包解压到IDEA安装目录下的plugins目录下:

5.maven的下载(我选择的版本是3.5.4)与安装,系统环境变量的配置

官网地址:Maven – Download Apache Maven

将对应版本的压缩包下载到本地,并新建一个文件夹Localwarehouse,用来保存下载的依赖文件

配置maven的系统环境配置,跟以上配置的方法一样,将bin目录地址写入path环境变量:

打开maven安装包下的conf文件夹下面的settings.xml,添加如下代码:

<localRepository>D:\\Develop\\maven\\Localwarehouse</localRepository>

在settings.xml配置文件中找到mirrors节点,添加阿里云仓库代码,具体代码如下配置(注意要添加在<mirrors>和</mirrors>两个标签之间):

<!-- 阿里云仓库 -->
<mirror>
	<id>alimaven</id>
	<mirrorOf>central</mirrorOf>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

添加如下代码用来配置jdk版本:

   <profile>
    <id>jdk-1.8.0</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    <jdk>1.8.0</jdk>
    </activation>
    <properties>
    <maven.compiler.source>1.8.0</maven.compiler.source>
    <maven.compiler.target>1.8.0</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8.0</maven.compiler.compilerVersion>
    </properties>
    </profile>

二、将maven加载到IDEA中

三、检测scala插件是否在IDEA中已经安装成功

四、用maven新建一个工程项目

五、配置pom.xml文件

1.如果只需要在本地运行spark程序,则只需要添加scala-library、spark-core、spark-sql、spark-streaming等依赖,添加代码如下:

<properties>
        <!-- 声明scala的版本 -->
        <scala.version>2.12.15</scala.version>
        <!-- 声明linux集群搭建的spark版本,如果没有搭建则不用写 -->
        <spark.version>3.2.1</spark.version>
        <!-- 声明linux集群搭建的Hadoop版本 ,如果没有搭建则不用写-->
        <hadoop.version>3.1.4</hadoop.version>
    </properties>
    <dependencies>
        <!--scala-->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.2.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>3.2.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.12</artifactId>
            <version>3.2.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

六、新建scala类文件编写代码

当你右键发现无法新建scala类,需要将scala SDK添加到当前项目中。

鼠标点击java文件夹,右键new--->Scala Class

在WordCount文件中编写如下代码:

import org.apache.spark.sql.SparkSession
object WordCount {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder()
      .master("local[*]")
      .appName("word count")
      .getOrCreate()
    val sc = spark.sparkContext
    val rdd = sc.textFile("data/input/words.txt")
    val counts = rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
    counts.collect().foreach(println)
    println("全部的单词数:"+counts.count())
    counts.saveAsTextFile("data/output/word-count")
  }
}

准备好测试文件words.txt,将文件存放在scalaproject-->data-->input-->words.txt

hello me you her
hello me you
hello me
hello

运行WordCount程序

运行结果:

七、其他注意事项

如果运行spark程序,控制台有输出 “Could not locate executable null\bin\winutils.exe in the Hadoop binaries”错误提示,解决方案请参考以下文章:

https://blog.csdn.net/hyj_king/article/details/104299371icon-default.png?t=N7T8https://blog.csdn.net/hyj_king/article/details/104299371

winuntils.exe下载地址:

GitHub - cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windowswinutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows - cdarlint/winutilsicon-default.png?t=N7T8https://github.com/cdarlint/winutils

如果运行你的spark程序,在控制台上打印出很多info信息,解决方案请参考以下文章:

Spark控制台不打印INFO,只输出结果_no custom resources configured for spark.driver.-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_44328257/article/details/125846290

### 在 Local 模式下通过 IntelliJ IDEA 配置并运行 Spark 程序 要在本地模式下使用 IntelliJ IDEA 运行 Spark 程序,需完成以下几个方面的配置: #### 1. 软件及依赖项准备 为了成功构建和运行 Spark 应用程序,需要安装以下软件及其指定版本[^1]: - **Java JDK**: 推荐使用 Java 8 或更高版本。 - **Scala**: 版本应与 Spark 的 Scala 版本兼容。例如,如果使用的是 Spark 2.x,则推荐使用 Scala 2.11.x。 - **Apache Maven**: 用于管理项目的依赖关系,建议版本为 3.6.3 或以上。 - **IntelliJ IDEA 社区版/专业版**: 至少需要支持 Scala 插件的版本。 #### 2. 创建 Spark 项目 启动 IntelliJ IDEA 并按照如下方式创建一个新的 Maven 项目: - 新建一个 Maven 项目,在 `pom.xml` 文件中添加必要的 Spark 和 Scala 依赖项。以下是典型的依赖声明示例: ```xml <dependencies> <!-- Apache Spark Core --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.7</version> </dependency> <!-- Apache Spark SQL (可选) --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.4.7</version> </dependency> <!-- Scala Library --> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.8</version> </dependency> </dependencies> ``` #### 3. 编写 Spark 代码 编写简单的 Spark 程序来验证其功能。下面是一个基本的 Spark 示例代码片段[^2]: ```scala package com.example.sparkDemo import org.apache.spark.{SparkConf, SparkContext} object SimpleApp { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName("Simple Application") .setMaster("local[*]") // 设置为本地模式 val sc = new SparkContext(conf) val data = List(1, 2, 3, 4, 5) val rdd = sc.parallelize(data) val result = rdd.map(x => x * 2).collect() println(result.mkString(", ")) sc.stop() } } ``` 上述代码定义了一个简单的 RDD 数据集,并对其执行了映射操作,最后打印结果。 #### 4. 配置运行参数 在 IntelliJ IDEA 中设置运行配置以支持 Spark 程序的调试和测试: - 右键点击项目中的主类文件(如上例中的 `SimpleApp`),选择“Run 'SimpleApp.main()'”。 - 如果需要自定义 JVM 参数或其他选项,可以在 Run/Debug Configurations 对话框中调整 VM options。例如,可以增加内存分配或启用垃圾回收日志记录。 #### 5. 测试 Spark 程序 确保所有依赖已正确加载后,即可直接运行程序。由于设置了 `.setMaster("local[*]")`,因此此应用将在单机多线程环境下模拟集群行为[^3]。 --- ### 注意事项 - 当前环境仅适用于开发阶段的小规模数据处理;对于大规模生产部署,请切换至分布式集群模式。 - 若遇到任何编译错误,请检查所使用的库版本是否一致以及是否存在冲突。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wanglingli95

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值