spark和Hadoop能夠部署在一塊兒,相互協做,由Hadoop的HDFS、HBase等組件複製數據的存儲和管理,由Spark負責數據的計算。java
Linux:CentOS Linux release 7.6.1810(Core)(cat /etc/centos-release 查看linux版本)linux
Hadoop:2.8.5(hadoop version)
shell
JDK:1.8.0_171(java -version)編程
Spark:2.3.0(先在命令行中查找spark-shell所在的位置,命令爲find / -name spark-shell,而後運行spark-shell,就能看到spark的版本號了)centos
舉例:瀏覽器
啓動spark shell成功後在輸出信息的末尾能夠看到"scala >"的命令提示符bash
第一步:app
第二步:分佈式
(1)sbtoop
步驟一:安裝sbt
步驟2:用sbt打包
須要在應用程序的目錄下構建simple.sbt文件(只要擴展名是.sbt均可以),在sbt中給出依賴說明,說明中包括當前應用的名稱,版本號,scala版本,依賴的groupID
在正式打包編譯以前,須要檢查一下目錄結構,必需要知足下面的目錄結構,才容許打包,編譯。
打包成功,會出現success信息
(2)Maven
步驟一:安裝Maven
在寫本地文件的時候必定是file:///
步驟二:建一個新的目錄叫sparkapp2,在該目錄下創建src/main/scala,增長SimpleApp.scala代碼
在「~/sparkapp2」目錄中新建pom.xml文件
在實驗室用三臺機器搭建spark集羣,一臺做爲主節點master,兩臺做爲輔節點slave,將三臺設備配置在同一個局域網內。 底層的Hadoop也要用集羣進行配置,數據分佈式保存,計算也要分佈式運算
(1)在master節點上訪問Spark官網下載Spark安裝包
在master節點主機的終端中執行以下命令:
在.bashrc添加以下配置
運行source命令,使配置當即生效
(2)在master節點上配置slaves文件,該文件包含了全部從節點的相關信息,slaves文件是在Spark安裝目錄下面的conf子目錄下,在conf子目錄下有一個slave.template模塊文件,把這個模板文件複製,重命名爲Slaves文件。打開這個文件,把剛纔兩個從節點主機名稱放到這個slave文件中保存一下,
(3)配置spark-env.sh文件
將spark-env.template拷貝到spark-env.sh,在這個文件中,須要添加三行配置信息。
(4)將Master主機上的/usr/local/spark文件夾複製到各個節點上
在兩個從節點上分別執行下面的操做,
(5)啓動集羣
啓動Hadoop集羣,而後啓動Master節點,
而後再在master節點上,運行start-slaves.sh這個腳本文件,去啓動另外兩個從節點,
在master主機上打開瀏覽器,訪問http://master:8080,就會顯示下圖集羣信息
(6)關閉集羣
先關閉spark(都是在master節點上執行,不用到slave節點關閉),再關閉Hadoop
安裝目錄是/usr/local/spark/,在這個目錄下油鍋spark-submit命令,用這個命令去提交剛纔的應用程序,
在交互式命令下,運行程序。下面寫法表示spark-shell一進入交互式環境,就鏈接到獨立集羣資源管理器上面,經過它來調度指揮資源。
在spark交互式環境中,系統會自動生成一個名詞爲sc的SparkContext對象
用戶在獨立集羣管理Web界面查看應用的運行狀況:在瀏覽器中輸入http://master:8080/,就能夠查看當前的運行狀態。
在當前master節點的安裝目錄下去運行命令,
運行後,根據在shell中獲得輸出的結果地址進行查看
在客戶端啓動一個spark-shell,是在客戶端的交互式環境下執行,不多是cluster模式,確定是一個client模式。
參考文獻: