4.Spark環境搭建和使用方法

1、安裝Spark

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

JDK1.8.0_171(java -version)編程

Spark:2.3.0(先在命令行中查找spark-shell所在的位置,命令爲find / -name spark-shell,而後運行spark-shell,就能看到spark的版本號了)centos

2、在spark-shell中運行代碼

1.四種模式

(1)local

(2)獨立集羣

(3)yarn

 

(4)MESOS

舉例:瀏覽器

啓動spark shell成功後在輸出信息的末尾能夠看到"scala >"的命令提示符bash

3、編寫Spark獨立應用程序

第一步: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文件

 

 

 

4、Spark集羣環境搭建

在實驗室用三臺機器搭建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

 

5、在集羣上運行Spark應用程序

1.啓動Hadoop集羣、Master節點和全部slaves節點

2.在集羣彙總運行應用程序JAR包

安裝目錄是/usr/local/spark/,在這個目錄下油鍋spark-submit命令,用這個命令去提交剛纔的應用程序,

3.在集羣中運行spark-shell

  在交互式命令下,運行程序。下面寫法表示spark-shell一進入交互式環境,就鏈接到獨立集羣資源管理器上面,經過它來調度指揮資源。

在spark交互式環境中,系統會自動生成一個名詞爲sc的SparkContext對象

 

用戶在獨立集羣管理Web界面查看應用的運行狀況:在瀏覽器中輸入http://master:8080/,就能夠查看當前的運行狀態。

4.向Hadoop YARN集羣管理器提交應用

在當前master節點的安裝目錄下去運行命令,

運行後,根據在shell中獲得輸出的結果地址進行查看

 

 

5.用spark-shell鏈接到YARN集羣管理器上

在客戶端啓動一個spark-shell,是在客戶端的交互式環境下執行,不多是cluster模式,確定是一個client模式。

 

參考文獻:

【1】Spark編程基礎_中國大學MOOC(慕課)

相關文章
相關標籤/搜索