Spark Windows

 本文主要是講解Spark在Windows環境是如何搭建的

一、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的命令行環境下的,但是對于有些用戶可能會遇到空指針的錯誤。這個時候,主要是因為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 spark
2        import spark.implicits._
3               ^
4 <console>:14: error: not found: value spark
5        import spark.sql

其原因是沒有權限在spark中寫入metastore_db 這個文件。

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

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

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

window環境下:

存放Spark的文件夾不能設為只讀和隱藏,如圖所示:

授予完全控制的權限,如圖所示:

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

六、Python下Spark開發環境搭建

?下面簡單講解Python下怎么搭建Spark環境

1、將spark目錄下的pyspark文件夾(C:\Spark\python\pyspark)復制到python安裝目錄C:\Python\Python35\Lib\site-packages里。如圖所示

spark的pysaprk

將pyspark拷貝至Python的安裝的packages目錄下。


2、然后使用cd命令,進入目錄D:\python27\Scripts,運行pip install py4j安裝py4j庫。如圖所示:

如果需要在python中或者在類似于IDEA IntelliJ或者PyCharm(筆者用的就是PyCharm)等IDE中使用PySpark的話,需要在系統變量中新建一個PYTHONPATH的系統變量,然后設置好下面變量值就可以了

PATHONPATH=%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip

后面的事情就交給PyCharm了。

至此,Spark在Windows環境下的搭建講解已結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386440.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386440.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386440.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ts

ts文件中使用以下注釋來臨時忽略規則出現的錯誤。如在定義變量是為定義類型就報錯誤 // tslint:disable——忽略該行以下所有代碼出現的錯誤提示// tslint:enable——當前ts文件重新啟用tslint// tslint:disable-line——忽略當前行代碼出現的錯誤提示// tslint:disable-next-l…

這個回答讓我錯失offer!成功收獲美團,小米安卓offer

前言 我們移動開發程序員應該首先明白一個要點&#xff0c;能夠學習的東西可以區分為『知識』和『技能』。 知識&#xff0c;就是你知道就知道、不知道就不知道的東西&#xff0c;比如『計算機系統中一個字節是包含8個bit』&#xff0c;你知道了之后就算掌握了。 技能&#…

vue 雙數據綁定原理

Vue的雙向數據綁定原理是什么&#xff1f; 答&#xff1a;vue.js 是采用數據劫持結合發布者-訂閱者模式的方式&#xff0c;通過Object.defineProperty()來劫持各個屬性的setter&#xff0c;getter&#xff0c;在數據變動時發布消息給訂閱者&#xff0c;觸發相應的監聽回調。 具…

Java lamda表達式快速分組

public class ProductDto {private long month;private String cate;private double count;} 分組 Map<String,List<ProductDto>> categoryMap alllist.getValue().stream().collect(Col lectors.groupingBy(ProductDto::getCate));求和 Double sumCount catego…

這么香的技術還不快點學起來,不吃透都對不起自己

大家應該看過很多分享面試成功的經驗&#xff0c;但根據幸存者偏差的理論&#xff0c;也許多看看別人面試失敗在哪里&#xff0c;對自己才更有幫助。 最近跟一個朋友聊天&#xff0c;他準備了幾個月&#xff0c;剛剛參加完字節跳動面試&#xff0c;第二面結束后&#xff0c;嗯&…

Unity3D熱更新之LuaFramework篇[06]--Lua中是怎么實現腳本生命周期的

前言 用c#開發的時候&#xff0c;新建的腳本都默認繼承自Monobehaviour, 因此腳本才有了自己的生命周期函數&#xff0c;如Awake,Start, Update, OnDestroy等。 在相應的方法中實現游戲邏輯&#xff0c;引擎會適時調用。 而Lua在這里做為c#的一個外延語言&#xff0c;自然是不受…

這么香的技術還不快點學起來,含BATJM大廠

前言 北京字節跳動科技有限公司成立于2012年3月&#xff0c;是最早將人工智能應用于移動互聯網場景的科技企業之一。其獨立研發的“今日頭條”客戶端&#xff0c;開創了一種全新的新聞閱讀模式。 我一直很向往這樣有創新精神&#xff0c;并做出了巨大成果的大公司&#xff0c…

.net Core把一個list集合里面的所有字段的數值匯總

前言&#xff1a;此隨筆僅供自己學習&#xff0c;如有不足還請指出 在很多時候&#xff0c;得到一個list集合&#xff0c;需要把里面的數據匯總&#xff0c;但我又不想寫那么多循環&#xff0c;于是去.net core 官方文檔找有沒有相關方法&#xff0c;很可惜我沒有找到&#xff…

openshift for linux

安裝openshift 1、下載地址&#xff1a; https://github.com/openshift/origin/releases 3.11下載&#xff1a; https://github.com/openshift/origin/releases/tag/v3.11.0 https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-server-v3.11…

這些Android高級必會知識點你能答出來幾個?含BATJM大廠

前言 首先介紹一下自己&#xff0c;計算機水本&#xff0c;考研與我無緣。之前在帝都某公司算法部實習&#xff0c;公司算大公司吧&#xff0c;然而個人愛好偏開發&#xff0c;大二的時候寫個一個app&#xff0c;主要是用各種框架。 一、掌握架構師筑基必備技能 二、掌握Andr…

Docker kafka

閱讀目錄 一、下載鏡像二、先啟動zookeeper三、啟動kafka四、創建一個topic&#xff08;使用代碼次步可省略&#xff09;五、kafka設置分區數量六、python代碼回到頂部 一、下載鏡像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 回到頂部 二、先啟…

這些年Android面試的那些套路,社招面試心得

前言 說不焦慮其實是假的&#xff0c;因為無論是現在還是最近幾年&#xff0c;很早就有人察覺Android開發的野蠻生長時代已經過去。過去的優勢是市場需要&#xff0c;這個技術少有人有&#xff0c;所以在搶占市場的時候&#xff0c;基本上滿足需要就已經可以了。但是現在&…

flask第一章:項目環境搭建

windows環境pycharmpython3 1、命令提示窗口 1&#xff09;創建項目目錄&#xff1a;mkdir myblog 2&#xff09;cd myblog 3&#xff09;創建虛擬環境&#xff1a;python -m venv myvenv 4&#xff09;激活虛擬環境&#xff1a;venv\Scripts\activate 5&#xff09;安裝flask&…

windows docker 空出C盤 遷移到其他盤

下面是操作方法&#xff1a; 首先關閉docker 關閉所有發行版&#xff1a;wsl --shutdown 將docker-desktop-data導出到D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar&#xff08;注意&#xff0c;原有的docker images不會一起導出&#xff09;wsl --expo…

安卓開發入門到精通!免費Android高級工程師學習資源,系列篇

前言 2017年進大學開始接觸Android&#xff0c;從剛開始接觸就不斷地聽到Android市場飽和&#xff0c;工作難找等消息。雖然當時也非常迷茫&#xff0c;不過由于第一次深入接觸編程語言&#xff0c;再加上自己的一點興趣&#xff0c;就一直堅持下來了。 到現在要畢業了&#…

安卓開發基礎面試題,9次Android面試經驗總結,面試必備

前言 上回承諾過大家&#xff0c;一定會出 HTTP 的系列文章&#xff0c;今天終于整理完成了。作為一個 web 開發&#xff0c;HTTP 幾乎是天天要打交道的東西&#xff0c;但我發現大部分人對 HTTP 只是淺嘗輒止&#xff0c;對更多的細節及原理就了解不深了&#xff0c;在面試的…

基于TCP的在線聊天程序

在線聊天服務端 import tkinter import tkinter.font as tkFont import socket import threading import time import sys class ServerUI():local127.0.0.1port5505global serverSock;flagFalsedef __init__(self):self.roottkinter.Tk()self.root.title(在線聊天-服務端v1.0)…

Docker安裝Confluence

Docker安裝Confluence 參考鏈接: https://my.oschina.net/u/2289161/blog/1648587 https://hub.docker.com/r/cptactionhank/atlassian-confluence/dockerfile https://my.oschina.net/u/2289161/blog/1647061 https://my.oschina.net/u/2289161/blog/838218 https://hub.…

安卓開發基礎面試題,Android面試必備的集合源碼詳解,附小技巧

去年無疑是 Flutter 技術如火如荼發展的一年。 每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生性能”的特色和理念而癡狂&#xff0c;從超級 App 到獨立應用&#xff0c;從純 Flutter 到混合棧&#xff0c;開發者們在不同的場景下樂此不疲的探…

『算法』讀書筆記 1.4算法分析 Part1

Chapter 1 本章結構 1.1Java語法 1.2數據抽象 1.3集合類抽象數據類型&#xff1a;背包 (Bags) 、隊列 (Queues) 、棧 (Stacks) 1.4算法分析 1.5連通性問題&#xff0d;Case Study: Union - Find ADT 本節開篇使用了一個ThreeSum程序進行示例&#xff1a; ThreeSum所起到的作用…