1. 程式人生 > >Spark2.1.0安裝和配置

Spark2.1.0安裝和配置

Spark主要使用HDFS充當持久化層,所以完整地使用Spark需要預先安裝Hadoop

Spark在生產環境中,主要部署在安裝Linux系統的叢集中。在Linux系統中安裝Spark需要預先安裝JDK、Scala等所需要的依賴。

由於Spark是計算框架,所以需要預先在叢集內有搭建好儲存資料的持久化層,如HDFS、Hive、Cassandra等,最後可以通過啟動指令碼執行應用。

1.安裝JDK
1-1 使用命令getconf LONG_BIT 檢視Linux系統的位數,然後下載相應版本的JDK
1-2 Oracle JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html


1-3 把下載的jdk-8u131-linux-x64.tar.gz安裝包解壓到相應的目錄

tar -zxvf jdk-8u131-linux-x64.tar.gz

1-4 配置環境變數,在/etc/profile 配置全域性變數或者在.bash_profile 中配置使用者變數
在檔案中新增如下內容,
新增完成之後使用命令source /etc/profle 使環境變數生效,
然後使用命令java -version 檢視是否安裝成功

export JAVA_HOME=/usr/java
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH
:$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

2.安裝Scala
2-1 下載Scala地址:http://www.scala-lang.org/download/
2-2 根據Spark對應版本選擇下載的Scala版本(scala-2.12.2.tgz)
2-3 如1-3那樣的安裝
2-4 配置環境變數,在/etc/profile 配置全域性變數或者在.bash_profile 中配置使用者變數
在檔案中新增如下內容,
新增完成之後使用命令source /etc/profle

使環境變數生效,
在命令列輸入Scala,能進入scala命令列說明安裝成功

export SCALA_HOME=/usr/scala
export PATH=$PATH:$SCALA_HOME/bin

4.Spark安裝
4-1 Spark的下載地址:http://spark.apache.org/
4-2 下載對應Hadoop版本的Spark版本(spark-2.1.0-bin-hadoop2.7.tgz)
4-3 按照1-3的方式安裝Spark
4-4 配置環境變數,在/etc/profile 配置全域性變數或者在.bash_profile 中配置使用者變數
在檔案中新增如下內容,
新增完成之後使用命令source /etc/profle 使環境變數生效,

export SPARK_HOME=/usr/spark
export SCALA_HOME=/usr/scala
export SPARK_WORK_MEMORY=4g
export SPARK_MASTER_IP=Master
export MASTER=spark://Master:7077

引數解釋:

  • SPARK_WORK_MEMORY 決定在每一個Worker節點上可用的最大記憶體,增加這個數可以在記憶體中快取更多資料,但一定要給Slave的作業系統和其他服務預留足夠記憶體
  • SPARK_MASTER_IP 引數可以是具體的IP地址也可以是hostname,系統會更具hosts檔案進行解析
  • MASTER配置埠號

PS:SPARK_MASTER_IP和MASTER必須配置否則會造成Slave無法註冊主機錯誤

4-6 配置conf/slaves 檔案 將節點的主機名加入到slaves檔案中

Slave1
Slave2
...
...

5.啟動Spark叢集

Spark叢集需要和Hadoop叢集一起啟動

5-1 Spark啟動和關閉

./sbin/start-all.sh

./sbin/stop-all.sh

5-2 在Master節點檢視是否啟動成功

# jps
2127 Master

能檢視都Master就成功了

5-3 利用SSH免密碼登入Worker節點檢視是否啟動成功

關於SSH的配置在前面的Hadoop配置中有

# jps
1405 Worker

5-4 完全啟動的一個Spark叢集的程序如下:

2127 Master
1405 Worker
7396 NameNode
7594 SecondaryNameNode
1053 DataNode
7681 ResourceManager
31935 NodeManager

如缺少程序可以在logs資料夾下檢視相應的日誌,具體檢視哪裡出了問題 針對解決。

6.Spark叢集樣例執行

6-1 以./run-example 的方式執行

./bin/run-example org.apache.spark.examples.SparkPi

6-2 以./Spark Shell 的方式執行

./bin/spark-shell

6-3 通過web ui 檢視叢集狀態

http://master:8080
http://master:4040