Spark學習筆記--Spark在Windows下的環境搭建

來源:互聯網
上載者:User

標籤:ast   環境   路徑名   安裝jdk   roo   版本號碼   版本   utils   png   

一、JDK的安裝1、1 下載JDK

  首先需要安裝JDK,並且將環境變數配置好,如果已經安裝了的老司機可以忽略。JDK(全稱是JavaTM Platform Standard Edition Development Kit)的安裝,去Oracle官網下載,是Java SE Downloads 。

  中兩個用紅色標記的地方都是可以點擊的,點擊進去之後可以看到這個最新版本的一些更為詳細的資訊,如所示:

  下載完之後,我們安裝就可以直接JDK,JDK在windows下的安裝非常簡單,按照正常的軟體安裝思路去雙擊下載得到的exe檔案,然後設定你自己的安裝目錄(這個安裝目錄在設定環境變數的時候需要用到)即可。

1、2 JDK環境變數設定

  接下來設定相應的環境變數,設定方法為:在案頭右擊【電腦】--【屬性】--【進階系統設定】,然後在系統屬性裡選擇【進階】--【環境變數】,然後在系統變數中找到“Path”變數,並選擇“編輯”按鈕後出來一個對話方塊,可以在裡面添加上一步中所安裝的JDK目錄下的bin檔案夾路徑名,我這裡的bin檔案夾路徑名是:C:\Program Files\Java\jre1.8.0_92\bin,所以將這個添加到path路徑名下,注意用英文的分號“;”進行分割。:

  這樣設定好後,便可以在任意目錄下開啟的cmd命令列視窗下運行下面命令。查看是否設定成功。

java -version

  觀察是否能夠輸出相關java的版本資訊,如果能夠輸出,說明JDK安裝這一步便全部結束了。:

二、Scala的安裝

  我們從官網:http://www.scala-lang.org/ 下載Scala,最新的版本為2.12.3,

因為我們是在Windows環境下,這也是本文的目的,我們選擇對應的Windows版本下載,:

  下載得到Scala的msi檔案後,可以雙擊執行安裝。安裝成功後,預設會將Scala的bin目錄添加到PATH系統變數中去(如果沒有,和上面JDK安裝步驟中類似,將Scala安裝目錄下的bin目錄路徑,添加到系統變數PATH中),為了驗證是否安裝成功,開啟一個新的cmd視窗,輸入scala然後斷行符號,如果能夠正常進入到Scala的互動命令環境則表明安裝成功。如所示:

備忘:如果不能顯示版本資訊,並且未能進入Scala的互動命令列,通常有兩種可能性: 
1、Path系統變數中未能正確添加Scala安裝目錄下的bin檔案夾路徑名,按照JDK安裝中介紹的方法添加即可。 
2、Scala未能夠正確安裝,重複上面的步驟即可。

三、Spark的安裝

我們到Spark官網進行下載:http://spark.apache.org/ ,我們選擇帶有Hadoop版本的Spark,:

  下載後得到了大約200M的檔案: spark-2.2.0-bin-hadoop2.7

  這裡使用的是Pre-built的版本,意思就是已經編譯了好了,下載來直接用就好,Spark也有源碼可以下載,但是得自己去手動編譯之後才能使用。下載完成後將檔案進行解壓(可能需要解壓兩次),最好解壓到一個盤的根目錄下,並重新命名為Spark,簡單不易出錯。並且需要注意的是,在Spark的檔案目錄路徑名中,不要出現空格,類似於“Program Files”這樣的檔案夾名是不被允許的。我們在C盤建立一個Spark檔案夾存放,:

  解壓後基本上就差不多可以到cmd命令列下運行了。但這個時候每次運行spark-shell(spark的命令列互動視窗)的時候,都需要先cd到Spark的安裝目錄下,比較麻煩,因此可以將Spark的bin目錄添加到系統變數PATH中。例如我這裡的Spark的bin目錄路徑為D:\Spark\bin,那麼就把這個路徑名添加到系統變數的PATH中即可,方法和JDK安裝過程中的環境變數設定一致,設定完系統變數後,在任意目錄下的cmd命令列中,直接執行spark-shell命令,即可開啟Spark的互動式命令列模式。

  系統變數設定後,就可以在任意目前的目錄下的cmd中運行spark-shell,但這個時候很有可能會碰到各種錯誤,這裡主要是因為Spark是基於hadoop的,所以這裡也有必要配置一個Hadoop的運行環境。錯誤:

接下來,我們還需要安裝Hadoop。

四、Hadoop的安裝

  在Hadoop Releases裡可以看到Hadoop的各個曆史版本,這裡由於下載的Spark是基於Hadoop 2.7的(在Spark安裝的第一個步驟中,我們選擇的是Pre-built for Hadoop 2.7),我這裡選擇2.7.1版本,選擇好相應版本並點擊後,進入詳細的下載頁面,如所示:

  選擇圖中紅色標記進行下載,這裡上面的src版本就是源碼,需要對Hadoop變更或者想自己進行編譯的可以下載對應src檔案,我這裡下載的就是已經編譯好的版本,即圖中的“hadoop-2.7.1.tar.gz”檔案。

下載並解壓到指定目錄,,我這裡是C:\Hadoop,:

然後到環境變數部分設定HADOOP_HOME為Hadoop的解壓目錄,:

然後再設定該目錄下的bin目錄到系統變數的PATH下,我這裡也就是C:\Hadoop\bin,如果已經添加了HADOOP_HOME系統變數,也可用%HADOOP_HOME%\bin來指定bin檔案夾路徑名。這兩個系統變數設定好後,開啟一個新的cmd視窗,然後直接輸入spark-shell命令。:

  正常情況下是可以運行成功並進入到Spark的命令列環境下的,但是對於有些使用者可能會遇到null 指標的錯誤。這個時候,主要是因為Hadoop的bin目錄下沒有winutils.exe檔案的原因造成的。這裡的解決辦法是: 

  可以去 https://github.com/steveloughran/winutils 選擇你安裝的Hadoop版本號碼,然後進入到bin目錄下,找到winutils.exe檔案,下載方法是點擊winutils.exe檔案,進入之後在頁面的右上方部分有一個Download按鈕,點擊下載即可。 :

下載winutils.exe檔案


  將下載好winutils.exe後,將這個檔案放入到Hadoop的bin目錄下,我這裡是C:\Hadoop\hadoop-2.7.1\bin。


在開啟的cmd中輸入 

C:\Hadoop\hadoop-2.7.1\bin\winutils.exe chmod 777 /tmp/Hive  //修改許可權,777是擷取所有許可權

但是我們發現報了一些其他的錯(Linux環境下也是會出現這個錯誤)

1 <console>:14: error: not found: value spark2        import spark.implicits._3               ^4 <console>:14: error: not found: value spark5        import spark.sql

其原因是沒有許可權在spark中寫入metastore_db 這個檔案。

處理方法:我們授予777的許可權

Linux環境,我們在root下操作:

1 sudo chmod 777 /home/hadoop/spark2 3 #為了方便,可以給所有的許可權4 sudo chmod a+w /home/hadoop/spark

window環境下:

存放Spark的檔案夾不能設為唯讀和隱藏,:

授予完全控制的許可權,:

經過這幾個步驟之後,然後再次開啟一個新的cmd視窗,如果正常的話,應該就可以通過直接輸入spark-shell來運行Spark了。正常的運行介面應該如所示:

Spark學習筆記--Spark在Windows下的環境搭建(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.