麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Spark在Windows下的環境搭建

2019-11-14 09:19:37
字體:
來源:轉載
供稿:網友

由于Spark是用Scala來寫的,所以Spark對Scala肯定是原生態支持的,因此這里以Scala為主來介紹Spark環境的搭建,主要包括四個步驟,分別是:JDK的安裝,Scala的安裝,Spark的安裝,Hadoop的下載和配置。為了突出”From Scratch”的特點(都是標題沒選好的緣故),所以下面的步驟稍顯有些啰嗦,老司機大可不必閱讀,直接跳過就好。   

一.JDK的安裝與環境變量的設置

1.1 JDK的安裝

  JDK(全稱是javaTM Platform Standard Edition Development Kit)的安裝,下載地址是Java SE Downloads,一般進入頁面后,會默認顯示一個最新版的JDK,如下圖所示,當前最新版本是JDK 8,更為詳細具體的地址是Java SE Development Kit 8 Downloads:

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

  首先,這里主要包含有8u101和8u102這兩個版本,Java給出的官方說明是:

“Java SE 8u101 includes important security fixes. Oracle strongly recommends that all Java SE 8 users upgrade to this release. Java SE 8u102 is a patch-set update, including all of 8u101 plus additional features (described in the release notes). ”

  也就是說Java推薦所有開發人員從以前的版本升級到JDK 8u101,而JDK 8u102則除了包括101的所有特性之外,還有一些其他的特性。對于版本的選擇,自行選擇就好了,其實對于普通開發人員來說,體現不了太大的區別,我這里就是使用的JDK 8u101版本。

  選好8u101版本后,再選擇你的對應開發平臺,由于我的機器是64位的,所以我這里選擇Windows64位的版本。記得在下載之前,必須要接受上方的許可協議,在上圖中用紅色圈出。      除了下載最新版本的JDK,也可以在Oracle Java Archive下載到歷史版本的JDK,但官方建議只做測試用。      JDK在windows下的安裝非常簡單,按照正常的軟件安裝思路去雙擊下載得到的exe文件,然后設定你自己的安裝目錄(安裝目錄在設置環境變量的時候需要用到)即可。   

1.2 環境變量的設置

  接下來設置相應的環境變量,設置方法為:在桌面右擊【計算機】--【屬性】--【高級系統設置】,然后在系統屬性里選擇【高級】--【環境變量】,然后在系統變量中找到“Path”變量,并選擇“編輯”按鈕后出來一個對話框,可以在里面添加上一步中所安裝的JDK目錄下的bin文件夾路徑名,我這里的bin文件夾路徑名是:F:/PRogram Files/Java/jdk1.8.0_101/bin,所以將這個添加到path路徑名下,注意用英文的分號“;”進行分割。這樣設置好后,便可以在任意目錄下打開的cmd命令行窗口下運行

java -version11

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

  全部流程如下圖所示(后續軟件安裝的系統變量設置都是這套流程):

1.3 一些題外話

    這里講兩句題外話,各位看官不關心的話可以跳過這里,不影響后續的安裝步驟。   在軟件安裝的時候,相信各位沒少遇到過環境變量和系統變量,所以這里就來扒一扒令人頭疼的PATH, CLASSPATH和JAVA_HOME等參數的具體含義。

1.3.1 環境變量、系統變量和用戶變量

環境變量包括系統變量和用戶變量系統變量的設置針對該操作系統下的所有用戶起作用;用戶變量的設置只針對當前用戶起作用

如果對這些概念還不是特別熟悉的,建議先看完下面幾個點之后,再回過頭來看這三句話。

1.3.2 PATH

  也就是上一步設置的系統變量,告訴操作系統去哪里找到Java.exe的執行路徑,當你在命令行窗口冷不丁的敲上如下命令的時候,

java -version11

操作系統首先會一驚,What the hell does “java” mean? 不過吐槽歸吐槽,活還是得干,于是悠悠的記起來了蓋茨爸爸說過的三句話:

當你看不懂命令行窗口中的一個命令的時候,你首先去你所在的當前目錄下找找,是否有這個命令的.exe程序?如果有,那就用它來啟動執行;如果沒有,千萬別放棄,記得要去Path系統變量下的那些目錄下去找一找,如果找到了,啟動并執行命令;如果上面兩個地方依然還沒找到,那你就撒個嬌,報個錯好了。

所以我們將JDK安裝目錄下的bin文件夾添加到Path系統變量的目的也就在這里,告訴操作系統:如果在當前目錄下找不到java.exe,就去Path系統變量里的那些路徑下挨個找一找,直到找到java.exe為止。那為什么要設置bin文件夾,而不是JDK安裝的根目錄呢?原因就在于根目錄下沒有java.exe啊,只有bin文件夾下才有啊喂……

如果只是在命令行窗口下運行一下java的命令,那其實也可以不設置系統變量,只是每次在命令行窗口運行java的命令時,都必須帶上一長串路徑名,來直接指定java.exe的位置,如下所示。

C:/Users/weizierxu>F:/Program Files/Java/jdk1.8.0_101/bin/java.exe -version'F:/Program' 不是內部或外部命令,也不是可運行的程序或批處理文件。123123

注意:這里報錯的原因并不是說直接指定java.exe的路徑名這種方式有問題,而是命令行下無法解析帶有空格的路徑名,所以需要用到雙引號,如下:

C:/Users/weizierxu>"F:/Program Files"/Java/jdk1.8.0_101/bin/java.exe -versionjava version "1.8.0_101"Java(TM) SE Runtime Environment (build 1.8.0_101-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)12341234

1.3.3 CLASSPATH

  CLASSPATH是在Java執行一個已經編譯好的class文件時,告訴Java去哪些目錄下找到這個class文件,比如你的程序里用到某個Jar包(Jar包里的都是已經編譯好的class文件),那么在執行的時候,Java需要找到這個Jar包才行,去哪找呢?從CLASSPATH指定的目錄下,從左至右開始尋找(用分號區分開的那些路徑名),直到找到你指定名字的class文件,如果找不到就會報錯。這里做一個實驗,就能明白具體是什么意思了。  首先,我在F:/Program Files/Java目錄下,利用Windows自帶的記事本寫了一個類似于Hello World的程序,保存為testClassPath.java文件(注意后綴名得改成java),內容如下:

public class testClassPath{ public static void main(String[] args){ System.out.println("Hello, this is a test on CLASSPATH!"); }}1234512345

然后,我將cmd的當前目錄切換到(通過cd命令)F:/Program Files/Java目錄下,然后用javac命令來對這個.java文件進行編譯,如下圖所示: 從上圖中可以看到,javac命令可以正常使用(沒有任何輸出的就表明正確編譯了),這是因為執行該命令的javac.exe同樣存在于JDK安裝路徑下的bin目錄中,而這個目錄我們已經添加到Path系統變量中去了,所以cmd能夠認識這個命令。這個時候可以看到F:/Program Files/Java目錄下多了一個testClassPath.class文件。不過運行這個class文件的時候,報錯了。這個時候,CLASSPATH就派上用場了,和1.2節中對Path系統變量設置的方法一樣,這里在CLASSPATH(如果系統變量的列表中沒有CLASSPATH這個選項,那么點擊新建,然后添加路徑即可)中最后面添加上;.,英文的分號表示和前面已有的路徑分割開,后面的小點.表示當前目錄的意思。這個時候記得要另起一個新的cmd窗口,然后利用cd命令切換到testClassPath.class所在目錄,然后再去執行,便可以成功得到結果了。

F:/Program Files/Java>java testClassPathHello, this is a test on CLASSPATH!1212

  因此,和Path變量不同的是,Java在執行某個class文件的時候,并不會有默認的先從當前目錄找這個文件,而是只去CLASSPATH指定的目錄下找這個class文件,如果CLASSPATH指定的目錄下有這個class文件,則開始執行,如果沒有則報錯(這里有去當前目錄下找這個class文件,是因為當前路徑通過.的方式,已經添加到了CLASSPATH系統變量中)。  上面講的指定CLASSPATH系統變量的方法,都是直接寫死在系統變量中的,為了避免造成干擾(比如多個同名class文件存在于多個路徑中,這些路徑都有添加到CLASSPATH系統變量中,由于在找class文件的時候,是從左往右掃描CLASSPATH系統變量中的路徑的,所以在利用java testClassPath方法執行的時候,運行的便是位置在CLASSPATH系統變量中最左邊的那個路徑中,對應的class文件,而這顯然不是我們想要的結果),因此在諸如Eclipse等等這些IDE中,并不需要人為手動設定CLASSPATH系統變量,而是只設定當前程序的特定的CLASSPATH系統變量,這樣便不會影響到其他程序的運行了。

1.3.4 JAVA_HOME

JAVA_HOME并不是Java本身所需要的參數,而是其他的一些第三方工具需要這個參數來配置它們自己的參數,它存在的意義無非是告訴那些軟件,我的JDK安裝在這個目錄下,你如果要用到我的Java程序的話,直接來我這個目錄下找就好了,而JAVA_HOME就是JDK的安裝路徑名。比如我的JDK安裝在F:/Program Files/Java/jdk1.8.0_101目錄下(注意該目錄下的bin目錄,就是在1.3.2節里Path系統變量中要添加的值),那么JAVA_HOME里要添加的值便是F:/Program Files/Java/jdk1.8.0_101,以后碰到類似HOME的系統變量,都是軟件的安裝目錄。

二. Scala的安裝

  首先從DOWNLOAD PREVIOUS VERSIONS下載到對應的版本,在這里需要注意的是,Spark的各個版本需要跟相應的Scala版本對應,比如我這里使用的Spark 1.6.2就只能使用Scala 2.10的各個版本,目前最新的Spark 2.0就只能使用Scala 2.11的各個版本,所以下載的時候,需要注意到這種Scala版本與Spark版本相互對應的關系。我這里現在用的是Scala 2.10.6,適配Spark從1.3.0到Spark 1.6.2之間的各個版本。在版本頁面DOWNLOAD PREVIOUS VERSIONS選擇一個適合自己需要的版本后,會進入到該版本的具體下載頁面,如下圖所示,記得下載二進制版本的Scala,點擊圖中箭頭所指,下載即可:

  下載得到Scala的msi文件后,可以雙擊執行安裝。安裝成功后,默認會將Scala的bin目錄添加到PATH系統變量中去(如果沒有,和JDK安裝步驟中類似,將Scala安裝目錄下的bin目錄路徑,添加到系統變量PATH中),為了驗證是否安裝成功,開啟一個新的cmd窗口,輸入scala然后回車,如果能夠正常進入到Scala的交互命令環境則表明安裝成功。如下圖所示:如果不能顯示版本信息,并且未能進入Scala的交互命令行,通常有兩種可能性: - Path系統變量中未能正確添加Scala安裝目錄下的bin文件夾路徑名,按照JDK安裝中介紹的方法添加即可。 - Scala未能夠正確安裝,重復上面的步驟即可。

三. Spark的安裝

  Spark的安裝非常簡單,直接去Download Apache Spark。有兩個步驟:

選擇好對應Hadoop版本的Spark版本,如下圖中所示;然后點擊下圖中箭頭所指的spark-1.6.2-bin-hadoop2.6.tgz,等待下載結束即可。

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

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

四.HADOOP下載

  系統變量設置后,就可以在任意當前目錄下的cmd中運行spark-shell,但這個時候很有可能會碰到各種錯誤,這里主要是因為Spark是基于Hadoop的,所以這里也有必要配置一個Hadoop的運行環境。在Hadoop Releases里可以看到Hadoop的各個歷史版本,這里由于下載的Spark是基于Hadoop 2.6的(在Spark安裝的第一個步驟中,我們選擇的是Pre-built for Hadoop 2.6),我這里選擇2.6.4版本,選擇好相應版本并點擊后,進入詳細的下載頁面,如下圖所示,選擇圖中紅色標記進行下載,這里上面的src版本就是源碼,需要對Hadoop進行更改或者想自己進行編譯的可以下載對應src文件,我這里下載的就是已經編譯好的版本,即圖中的’hadoop-2.6.4.tar.gz’文件。

     下載并解壓到指定目錄,然后到環境變量部分設置HADOOP_HOME為Hadoop的解壓目錄,我這里是F:/Program Files/hadoop,然后再設置該目錄下的bin目錄到系統變量的PATH下,我這里也就是F:/Program Files/hadoop/bin,如果已經添加了HADOOP_HOME系統變量,也可以用%HADOOP_HOME%/bin來指定bin文件夾路徑名。這兩個系統變量設置好后,開啟一個新的cmd,然后直接輸入spark-shell命令。

  正常情況下是可以運行成功并進入到Spark的命令行環境下的,但是對于有些用戶可能會遇到空指針的錯誤。這個時候,主要是因為Hadoop的bin目錄下沒有winutils.exe文件的原因造成的。這里的解決辦法是:    - 去 https://github.com/steveloughran/winutils 選擇你安裝的Hadoop版本號,然后進入到bin目錄下,找到winutils.exe文件,下載方法是點擊winutils.exe文件,進入之后在頁面的右上方部分有一個Download按鈕,點擊下載即可。 - 下載好winutils.exe后,將這個文件放入到Hadoop的bin目錄下,我這里是F:/Program Files/hadoop/bin。 - 在打開的cmd中輸入 F:/Program Files/hadoop/bin/winutils.exe chmod 777 /tmp/Hive 這個操作是用來修改權限的。注意前面的F:/Program Files/hadoop/bin部分要對應的替換成實際你所安裝的bin目錄所在位置。

  經過這幾個步驟之后,然后再次開啟一個新的cmd窗口,如果正常的話,應該就可以通過直接輸入spark-shell來運行Spark了。 正常的運行界面應該如下圖所示:從圖中可以看到,在直接輸入spark-shell命令后,Spark開始啟動,并且輸出了一些日志信息,大多數都可以忽略,需要注意的是兩句話:

Spark context available as sc.SQL context available as sqlContext.1212

Spark contextSQL context分別是什么,后續再講,現在只需要記住,只有看到這兩個語句了,才說明Spark真正的成功啟動了。

五. Python下的PySpark

  針對Python下的Spark,和Scala下的spark-shell類似,也有一個PySpark,它同樣也是一個交互式的命令行工具,可以對Spark進行一些簡單的調試和測試,和spark-shell的作用類似。對于需要安裝Python的來說,這里建議使用Python(x,y),它的優點就是集合了大多數的工具包,不需要自己再單獨去下載而可以直接import來使用,并且還省去了繁瑣的環境變量配置,下載地址是Python(x,y) - Downloads,下載完成后,雙擊運行安裝即可。因為本教程主要以Scala為主,關于Python的不做過多講解。

六. 小結

  至此,基本的Spark本地調試環境便擁有了,對于初步的Spark學習也是足夠的。但是這種模式在實際的Spark開發的時候,依然是不夠用的,需要借助于一個比較好用的IDE來輔助開發過程。下一講就主要講解ItelliJ IDEA以及Maven的配置過程。 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久精品视频免费观看 | 91av久久 | 成人福利电影在线观看 | 空姐一级毛片 | 久久国产精 | 免费毛片在线视频 | 中文日产幕无线码6区免费版 | 毛片网站视频 | 久草视频国产在线 | 欧美日韩免费观看视频 | 免费毛片视频 | 黄网站在线免费看 | 91亚洲精品一区二区福利 | 欧洲成人一区 | 国产一区二区不卡 | 久久国产精品免费视频 | 欧美成人午夜一区二区三区 | 中文字幕在线观看免费 | 久久精品国产精品亚洲 | 九九热视频在线免费观看 | 欧美成人黄色小视频 | 亚洲精品a在线观看 | 美女黄页网站免费进入 | 成人免费一区二区 | 黄视频网站免费在线观看 | 91网视频 | 在线观看国产一区二区 | 亚洲精品一区国产精品丝瓜 | 黄色视屏免费观看 | 欧美久久久一区二区三区 | 亚洲国产视频在线 | 精品一二三区视频 | 免费国产在线精品 | 国产亚洲精品久久午夜玫瑰园 | 欧美色性| 91精品国产免费久久 | 欧美高清另类自拍视频在线看 | 狠狠操夜夜爱 | 天天草天天干天天射 | 看全色黄大色黄大片女图片 | 九九热在线精品视频 |