跟我一起學Spark之——Windows10下spark2.3.0本地開發環境搭建-親測
相關元件版本:
JDK1.8.0_171,hadoop-2.7.6,Spark-2.3.0,Scala-2.11.8,Maven-3.5.3,ideaIC-2018.1.4.exe,spark-2.3.0-bin-hadoop2.7
1.1 JDK1.8.0_171
a. 下載JDK,jdk-8u171-windows-x64.exe,安裝到目錄:D:\setupedsoft\Java,並設定 JAVA_HOME 變數
http://www.oracle.com/technetwork/java/javase/downloads/index.html
b. 設定 Path 變數,新增 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
c. 設定 Classpath 新增:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
d. 分別使用java/javac來驗證環境變數是否配置成功
注意:老老實實把安裝路徑變成沒有空格的!!!!!!
路徑上包含空格的,有以下2個解決辦法:(但是在啟動節點和關閉節點時會報錯“C:\Program” 不是個命令)
1.用路徑替代符(需要重啟電腦) C:\PROGRA~1\Java\jdk1.8.0_171
2.用引號括起來 "C:\Program Files"\Java\jdk1.8.0_171
1.2 hadoop-2.7.6
1.2.1 下載並解壓
下載地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.6/
下載:hadoop-2.7.6.tar.gz 解壓至安裝目錄D:\setupedsoft\hadoop-2.7.6
1.2.2 設定環境變數
HADOOP_HOME=D:\setupedsoft\hadoop-2.7.6
Path=;%HADOOP_HOME%\bin
1.2.3 支援windows執行
下載地址:https://pan.baidu.com/s/1_C4TALLBW9TbIrJMC4JKtA 密碼: dc63
一個支援在windows執行hadoop的工具
用解壓後的bin、etc目錄覆蓋hadoop的bin、etc目錄(親測這個工具適用於hadoop2.5和2.7,其他的尚且不知)
1.2.4 建立HADOOP資料儲存目錄
在/D:/datafile/hadoop-2.7.6目錄新建workplace目錄,進入workplace,新建子資料夾temp、data、name
1.2.5 修改hadoop配置檔案
連結:https://pan.baidu.com/s/1y178KxOUPbcZH_Efmvx1Kg 密碼:qgez
1.2.6 格式化命名節點
終端執行hdfs namenode -format,出現類似INFO util.ExitUtil: Exiting with status0則說明沒有錯
D:\setupedsoft\hadoop-2.7.6\bin>hdfs namenode -format
1.2.7 啟動hadoop
sbin目錄下,執行start-all.cmd
D:\setupedsoft\hadoop-2.7.6\sbin>start-all.cmd
1.2.8 web ui介面檢視
http://localhost:50070/dfshealth.html#tab-overview
1.2.9 停止所有節點
stop-all.cmd
1.3Spark-2.3.0
1.3.1 下載並解壓
下載地址: http://spark.apache.org/downloads.html
下載spark-2.3.0-bin-hadoop2.7.tgz,解壓至安裝目錄 D:\setupedsoft\spark-2.3.0-bin-hadoop2.7
1.3.2 新建環境變數SPARK_HOME
新建環境變數SPARK_HOME,值為spark安裝目錄
將%SPARK_HOME%\bin新增至環境變數path
1.3.3 執行SPARK
終端輸入spark-shell或pyspark或sparkR,能成功開啟則安裝成功
1.3.4 介面檢視
1.4 Scala-2.11.8
下載地址:https://www.scala-lang.org/download/2.11.8.html(2.12.6報錯,改為安裝2.11.8)
a.設定 SCALA_HOME
b.設定 Path 變數:新增 ;%SCALA_HOME%\bin
c.設定 Classpath 新增:.;%SCALA_HOME%\bin;
配置JDK和Scala SDK 選單路徑:Project Structure>>Platform Settings
SDKs,新增上述安裝的jdk
Global Libraries,新增Scala SDK,選擇上述安裝的Scala,版本選擇2.11,並將Scala SDK2.11新增到當前專案
1.5 Maven-3.5.3
下載地址:http://maven.apache.org/download.cgi,解壓到目錄:D:\setupedsoft\apache-maven-3.5.3
a.設定 MAVEN_HOME 變數,值為:D:\setupedsoft\apache-maven-3.5.3
b.設定 Path 變數:新增 ;%MAVEN_HOME%\bin;
檢視MAVEN安裝是否成功:mvn -v
1.6 IntelliJIDEA 安裝
下載地址:http://www.jetbrains.com/idea/download/#section=windows
選擇開源版本64位
1.7 IDEA環境安裝
1.7.1 安裝idea
執行EXE檔案安裝
1.7.2 修改maven配置
配置maven 選單路徑:File>>Setting>>Build,Execution,Deployment>>BuildTools>>Maven 設定maven安裝路徑
1.7.3 Scala外掛安裝
Scala外掛安裝 選單路徑:File>>Setting>>Plugins>>Browse Repositories 搜尋Scala,安裝,重啟IntelliJ IDEA
1.7.4 全域性JDK和Library的設定
歡迎介面>>Configure>>Project Defaults>>Project Structure>>SDKs
1.7.5 配置全域性的Scala SDK
歡迎介面>>Configure>>Project Defaults>>Project Structure>>GlobalLibraries>>加號>>Scala SDK
1.7.6 新建maven專案
新建maven專案,main中新建scala目錄,並在File>>projectstructure>>modules中,將scala目錄標記為sources
1.7.7 匯入spark依賴
修改pom.xml檔案,並修改設定為自動匯入依賴File>>Settings>>Importing>>Import Maven projects automatically
連結:https://pan.baidu.com/s/1xmy7cPE_BkKNFv04G-perg 密碼:rdas
1.7.8編寫sprak程式碼
依賴新增成功後,新建scala 的object 檔案然後填寫如下程式碼:
import org.apache.spark.{SparkConf, SparkContext}
/**
*
* @author migu-orrin on 2018/5/3.
*/
object WordCount {
def main(args: Array[String]) {
/**
* SparkContext 的初始化需要一個SparkConf物件
* SparkConf包含了Spark叢集的配置的各種引數
*/
val conf=new SparkConf()
.setMaster("local")//啟動本地化計算
.setAppName("WordCount")//設定本程式名稱
//Spark程式的編寫都是從SparkContext開始的
val sc=new SparkContext(conf)
//以上的語句等價與val sc=new SparkContext("local","testRdd")
val data=sc.textFile("E:/data/wordcount.txt")//讀取本地檔案
var result = data.flatMap(_.split(" "))//下劃線是佔位符,flatMap是對行操作的方法,對讀入的資料進行分割
.map((_,1))//將每一項轉換為key-value,資料是key,value是1
.reduceByKey(_+_)//將具有相同key的項相加合併成一個
result.collect()//將分散式的RDD返回一個單機的scala array,在這個陣列上運用scala的函式操作,並返回結果到驅動程式
.foreach(println)//迴圈列印
result.saveAsTextFile("E:/data/wordcountres")
}
}
1.7.9打包執行
執行成功後,可以講程式碼打包成jar 包傳送到遠端或者本地的spark 叢集上執行。打包有以下步驟
點選“File“然後選擇“project Structure“
然後如圖所示進行如下操作 ,在彈出的對話方塊中點選按鈕,選擇主類進行如下4步操作。
由於我們的jar包實在spark 上執行的,故可以刪除其他不需要的依賴包
注意:outputdirectory 的路徑。此處是你匯出 jar 的路徑。
執行 bulid 構建你的jar
jar 包匯出以後就可以在spark上運行了。包匯出路徑是在project structure的output directory:D:\hanrworkspace\mytest\out\artifacts\mytest_jar
此時進入終端,進入到spark安裝包的 bin 目錄下。執行如下命令:
spark-submit--class SparkPi --master spark://spark1:7077/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar
注:
SparkPi:是啟動類的名字,如果有包命,要加包名,(例如 com.edu.SparkPi)
spark1:7077 :是你遠端的spark 的地址,(spark1:7077為提交到本機測試)。
/D:/hanrworkspace/mytest/out/artifacts/mytest_jar/mytest.jar:是你jar 包的路徑。
參考部落格:
新增自己總結的部分,下面為借鑑部落格原文地址:
https://blog.csdn.net/u011521890/article/details/78577582
https://my.oschina.net/orrin/blog/1812035
https://blog.csdn.net/huan_chen/article/details/78574835
https://blog.csdn.net/Gnd15732625435/article/details/81062381
https://blog.csdn.net/hambition/article/details/80769771?utm_source=copy