当前位置: 代码网 > it编程>编程语言>Java > 在IDEA运行spark程序(搭建Spark开发环境)

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

2024年08月02日 Java 我要评论
在IDEA中运行spark程序

       建议大家写在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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com