1. 程式人生 > >跟我一起學Spark之——Windows10下spark2.3.0本地開發環境搭建-親測

跟我一起學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:8088/cluster 

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 介面檢視

http://localhost:4040

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