首先在安裝環(huán)境前,最好確認(rèn)各個(gè)版本之間的兼容性,避免出現(xiàn)不必要的錯(cuò)誤而耽誤時(shí)間!?。。。。?/b>
系統(tǒng)環(huán)境安裝
1.JDK8+安裝
a.設(shè)置 JAVA_HOME 變量
b.設(shè)置 Path 變量,添加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c.設(shè)置 Classpath 添加: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
2.Scala安裝
下載地址:http://www.scala-lang.org/download/all.html
選擇版本2.12.10
a.設(shè)置 SCALA_HOME 變量
b.設(shè)置 Path 變量:添加 ;%SCALA_HOME%\bin
c.設(shè)置 Classpath 添加:.;%SCALA_HOME%\bin;
3.Hadoop安裝
下載地址:https://archive.apache.org/dist/hadoop/common/
選擇版本:3.0.0
a.設(shè)置 HADOOP_HOME 變量
b.設(shè)置 Path 變量:添加 ;%HADOOP_HOME%\bin
安裝參考:https://blog.csdn.net/songhaifengshuaige/article/details/79575308
最后完成后,最好吧bin目錄下的hadoop.dll復(fù)制到C:\windows\system32\下。要不后續(xù)容易出錯(cuò)
4.Spark安裝
下載地址:http://spark.apache.org/downloads.html
選擇版本:3.0.0
a.設(shè)置 SPARK_HOME 變量
b.設(shè)置 Path 變量:添加 ;%SPARK_HOME%\bin
5. maven 安裝?
下載地址:http://maven.apache.org/download.cgi
下載版本:3.6.1
a.設(shè)置 MAVEN_HOME 變量
b.設(shè)置 Path 變量:添加 ;%MAVEN_HOME%\bin;
需要注意的是setting.xml中配置本地倉(cāng)庫(kù)的目錄,
如果maven依賴(lài)導(dǎo)入失敗的話參考:https://blog.csdn.net/u012702547/article/details/88071279
6. IntelliJ IDEA 安裝?
我使用的是2019.3破解版,破解教程可以去百度一下,很多!
IDEA環(huán)境安裝
1.配置maven?
菜單路徑:File>>Setting>>Build,Execution,Deployment>>Build Tools>>Maven 設(shè)置maven安裝路徑
我的設(shè)置是這樣的,供參考:

2.Scala插件安裝?
菜單路徑:File>>Setting>>Plugins>>Browse Repositories 搜索Scala,安裝對(duì)應(yīng)版本的 Scala。
3.配置JDK和Scala SDK?
菜單路徑:Project Structure>>Platform Settings
SDKs,添加上述安裝的jdk
Global Libraries,添加Scala SDK,如果沒(méi)有System的版本讓你選擇,就點(diǎn)下面的Browse選擇你解押的Scala目錄即可。
添加spark的jars。點(diǎn)“+”選java,找到spark目錄中的jars導(dǎo)入即可。

4.運(yùn)行實(shí)例類(lèi)?新建Create Scala Class,Name=WordCount,Kind=Object
package com.sparkstudy.wordcountimport org.apache.spark.{SparkConf, SparkContext}/** * *@authororrin on 2018/5/3. */object WordCount {
? defmain(args: Array[String]){
? ? /**
? ? ? * SparkContext 的初始化需要一個(gè)SparkConf對(duì)象
? ? ? * SparkConf包含了Spark集群的配置的各種參數(shù)
? ? ? */? ? val conf=new SparkConf()
? ? ? .setMaster("local")//啟動(dòng)本地化計(jì)算? ? ? .setAppName("WordCount")//設(shè)置本程序名稱(chēng)? ? //Spark程序的編寫(xiě)都是從SparkContext開(kāi)始的? ? val sc=new SparkContext(conf)
? ? //以上的語(yǔ)句等價(jià)與val sc=new SparkContext("local","testRdd")? ? val data=sc.textFile("E:/data/wordcount.txt")//讀取本地文件? ? var result = data.flatMap(_.split(" "))//下劃線是占位符,flatMap是對(duì)行操作的方法,對(duì)讀入的數(shù)據(jù)進(jìn)行分割? ? ? .map((_,1))//將每一項(xiàng)轉(zhuǎn)換為key-value,數(shù)據(jù)是key,value是1? ? ? .reduceByKey(_+_)//將具有相同key的項(xiàng)相加合并成一個(gè)? ? result.collect()//將分布式的RDD返回一個(gè)單機(jī)的scala array,在這個(gè)數(shù)組上運(yùn)用scala的函數(shù)操作,并返回結(jié)果到驅(qū)動(dòng)程序? ? ? .foreach(println)//循環(huán)打印? ? result.saveAsTextFile("E:/data/wordcountres")
? }
}
運(yùn)行結(jié)果:
