如何在IDEA運(yùn)行spark程序(搭建Spark開發(fā)環(huán)境)
建議大家寫在Linux上搭建好Hadoop的完全分布式集群環(huán)境和Spark集群環(huán)境,以下在IDEA中搭建的環(huán)境僅僅是在window系統(tǒng)上進(jìn)行spark程序的開發(fā)學(xué)習(xí),在window系統(tǒng)上可以不用安裝hadoop和spark,spark程序可以通過pom.xml的文件配置,添加spark-core依賴,可以直接在IDEA中編寫spark程序并運(yùn)行結(jié)果。
一、相關(guān)軟件的下載及環(huán)境配置
1.jdk的下載安裝及環(huán)境變量配置(我選擇的版本是jdk8.0(即jdk1.8),建議不要使用太高版本的,不然配置pom.xml容易報(bào)錯(cuò))
鏈接: https://pan.baidu.com/s/1ARiP-XX-0yi4Ev2y8BEfyA?pwd=r64b
提取碼: r64b
雙擊安裝包,一直“Next”即可,最好不要安裝到C盤,中間修改一下安裝路徑即可,最后點(diǎn)擊“Finish”。我將jdk1.8安裝在了D盤目錄下的soft文件夾,bin路徑如下:

配置環(huán)境變量:





win+R打開命令窗口輸入:javac -verison ,進(jìn)行檢測(cè)是否成功配置環(huán)境變量:

2.IDEA的下載安裝(我選擇的版本是2019.2.3,建議選擇低版本的IDEA)
官網(wǎng)下載地址:IntelliJ IDEA – 領(lǐng)先的 Java 和 Kotlin IDE (jetbrains.com.cn)

3.scala的下載(我選擇的版本是2.12.15)安裝及環(huán)境變量的配置
官網(wǎng)下載地址:The Scala Programming Language (scala-lang.org)

雙擊打開下載好的安裝程序,一直“Next”即可,最好不要安裝到C盤,中間修改一下安裝路徑即可,最后點(diǎn)擊“Finish”。我將scala軟件安裝在了D盤目錄下的Develop文件夾,bin路徑如下:

配置scala的系統(tǒng)環(huán)境變量,將scala安裝的bin目錄路徑加入到系統(tǒng)環(huán)境變量path中:

win+R打開命令窗口輸入:scala -verison ,進(jìn)行檢測(cè)是否成功配置環(huán)境變量:

4.scala插件(版本要與IDEA版本保持一致,下載2019.2.3版本)的下載安裝
官網(wǎng)地址:Scala - IntelliJ IDEs Plugin | Marketplace
下載完成后,將下載的壓縮包解壓到IDEA安裝目錄下的plugins目錄下:

5.maven的下載(我選擇的版本是3.5.4)與安裝,系統(tǒng)環(huán)境變量的配置
官網(wǎng)地址:Maven – Download Apache Maven
將對(duì)應(yīng)版本的壓縮包下載到本地,并新建一個(gè)文件夾Localwarehouse,用來保存下載的依賴文件

配置maven的系統(tǒng)環(huán)境配置,跟以上配置的方法一樣,將bin目錄地址寫入path環(huán)境變量:


打開maven安裝包下的conf文件夾下面的settings.xml,添加如下代碼:
<localRepository>D:\\Develop\\maven\\Localwarehouse</localRepository>

添加如下代碼用來配置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中


三、檢測(cè)scala插件是否在IDEA中已經(jīng)安裝成功

四、用maven新建一個(gè)工程項(xiàng)目





五、配置pom.xml文件
1.如果只需要在本地運(yùn)行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類文件編寫代碼
當(dāng)你右鍵發(fā)現(xiàn)無法新建scala類,需要將scala SDK添加到當(dāng)前項(xiàng)目中。



鼠標(biāo)點(diǎn)擊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("全部的單詞數(shù):"+counts.count())
counts.saveAsTextFile("data/output/word-count")
}
}準(zhǔn)備好測(cè)試文件words.txt,將文件存放在scalaproject-->data-->input-->words.txt
hello me you her hello me you hello me hello

運(yùn)行WordCount程序

運(yùn)行結(jié)果:


到此這篇關(guān)于在IDEA運(yùn)行spark程序(搭建Spark開發(fā)環(huán)境)的文章就介紹到這了,更多相關(guān)IDEA運(yùn)行spark程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring如何使用PropertyPlaceholderConfigurer讀取文件
這篇文章主要介紹了Spring如何使用PropertyPlaceholderConfigurer讀取文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
java為移動(dòng)端寫接口開發(fā)實(shí)例
本篇文章主要介紹了java如何為移動(dòng)端寫接口,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
idea2019版與maven3.6.2版本不兼容的解決方法
這篇文章主要介紹了idea2019版與maven3.6.2版本不兼容的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
將SpringBoot項(xiàng)目的HTTP站點(diǎn)改為HTTPS的全過程
本文介紹了如何在Spring Boot項(xiàng)目中實(shí)現(xiàn)HTTPS請(qǐng)求,首先,創(chuàng)建一個(gè)Spring Boot項(xiàng)目并編寫一個(gè)BasicController.java文件,然后,配置application.yaml文件以支持HTTPS,接著,使用Java自帶的keytool工具生成一個(gè)免費(fèi)的HTTPS證書,需要的朋友可以參考下2026-02-02
Springboot集成百度地圖實(shí)現(xiàn)定位打卡的示例代碼
本文主要介紹了Springboot集成百度地圖實(shí)現(xiàn)定位打卡的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02
Java如何向主函數(shù)main中傳入?yún)?shù)
這篇文章主要介紹了Java如何向主函數(shù)main中傳入?yún)?shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
JavaSE實(shí)現(xiàn)文件壓縮與解壓縮的技巧分享
我們?cè)谌粘?shí)際開發(fā)中,對(duì)于文件壓縮和解壓縮場(chǎng)景,是非常常見的操作,本文詳細(xì)介紹JavaSE中文件壓縮和解壓縮的實(shí)現(xiàn)方法,包括源代碼解析、應(yīng)用場(chǎng)景案例、優(yōu)缺點(diǎn)分析、案例演示、文末總結(jié)等等,請(qǐng)同學(xué)們耐心閱讀2024-03-03

