下面給出的是spark集羣搭建的環境:html
操做系統:最小安裝的CentOS 7(下載地址)java
Yarn對應的hadoop版本號:Hadoop的Cloudera公司發行版Hadoop2.6.0-CDH5.4.0(下載地址)linux
Java版本號:JDK1.8(下載地址)web
Scala版本號:Scala2.10.4(下載地址)centos
Spark版本號:spark-1.3.1-bin-hadoop2.6(下載地址)oracle
集羣組成:master 192.168.1.2app
slave1 192.168.1.3工具
slave2 192.168.1.4oop
slave3 192.168.1.5測試
一、 操做系統的安裝
我以爲這個就不必說了,下載一個虛擬機或者直接在真機安裝,比較簡單,再也不贅述。
二、 Java的安裝
請參看個人博文《Jdk1.8在CentOS7中的安裝與配置》有詳細說明。
三、 Scala的安裝
請參看個人博文《Scala2.10.4在CentOS7中的安裝與配置》有詳細說明。
四、 Yarn的部署
Yarn是由Hadoop2.x發展而來,是Hadoop1.x的JobTracker和TaskTracker的升級版本,是hadoop2.x的資源調度工具。搭建Hadoop2.x環境的時候,yarn會自動被搭建好,因此,咱們只須要搭建hadoop環境便可。
Hadoop具體環境搭建,請參看個人博文《Hadoop2.6.0在CentOS 7中的集羣搭建》有詳細說明。
五、 Spark的集羣搭建
a) 首先,從官網下載spark1.3.1對應hadoop2.6.0的版本(注:如下全部操做都在超級用戶模式下進行!)
b) 在主節點master的root/app的目錄下,解壓下載好的spark-1.3.1-bin-hadoop2.6.tgz:
tar –xzvf spark-1.3.1-bin-hadoop2.6.tgz
c) 配置Spark的環境變量:
i. vi /etc/profile
ii. 在文件最後添加:
## SPARK export SPARK_HOME=spark的絕對路徑(我這邊是:/root/app/spark-1.3.1-bin-hadoop2.6) export PATH=$PATH:$SPARK_HOME/bin
d) Spark的相關文件配置
i. slaves的配置:
slave1
slave2
slave3
ii. spark-env.sh的配置
export JAVA_HOME=Java安裝的絕對路徑(我這邊是:/root/app/jdk1.8) export SCALA_HOME=Scala安裝的絕對路徑(我這邊是:/root/app/scala2.10) export HADOOP_CONF_DIR=hadoop環境下的配置文件目錄etc/hadoop的絕對路徑(我這邊是:/root/app/hadoop-2.6.0-cdh5.4.0/etc/Hadoop) export SPARK_MASTER_IP=主節點IP或主節點IP映射名稱(我這邊是:master) export SPARK_MASTER_PORT=主節點啓動端口(默認7077) export PARK_MASTER_WEBUI_PORT=集羣web監控頁面端口(默認8080) export SPARK_WORKER_CORES=從節點工做的CPU核心數目(默認1) export SPARK_WORKER_PORT=從節點啓動端口(默認7078) export SPARK_WORKER_MEMORY=分配給Spark master和 worker 守護進程的內存空間(默認512m) export SPARK_WORKER_WEBUI_PORT=從節點監控端口(默認8081) export SPARK_WORKER_INSTANCES=每臺從節點上運行的worker數量 (默認: 1). PS:當你有一個很是強大的計算的時候和須要多個Spark worker進程的時候你能夠修改這個默認值大於1 . 若是你設置了這個值。要確保SPARK_WORKER_CORE 明確限制每個worker的核心數, 不然每一個worker 將嘗試使用全部的核心。
3. 我這邊的yarn部署是按照spark配置文件的默認部署的,若是你想根據實際狀況來部署的話,能夠修改一下文件:
# - HADOOP_CONF_DIR, to point Spark towards Hadoop configuration files # - SPARK_EXECUTOR_INSTANCES, Number of workers to start (Default: 2) # - SPARK_EXECUTOR_CORES, Number of cores for the workers (Default: 1). # - SPARK_EXECUTOR_MEMORY, Memory per Worker (e.g. 1000M, 2G) (Default: 1G) # - SPARK_DRIVER_MEMORY, Memory for Master (e.g. 1000M, 2G) (Default: 512 Mb) # - SPARK_YARN_APP_NAME, The name of your application (Default: Spark) # - SPARK_YARN_QUEUE, The hadoop queue to use for allocation requests # - SPARK_YARN_DIST_FILES, Comma separated list of files to be distributed with the job. # - SPARK_YARN_DIST_ARCHIVES, Comma separated list of archives to be distributed with the job.
iii. Spark文件複製:
將配置好的Spark文件複製到各個從節點slave對應的目錄上:
scp spark-1.3.1-bin-hadoop2.6/ root@slave1:/root/app scp spark-1.3.1-bin-hadoop2.6/ root@slave2:/root/app scp spark-1.3.1-bin-hadoop2.6/ root@slave3:/root/app
六、 Spark On Yarn的集羣啓動:
a) Yarn的啓動:
i. 先進入hadoop目錄下
ii. ./sbin/start-all.sh
iii. jps發現有ResourceManager進程,說明yarn啓動完成
b) Spark的啓動:
i. 先進入spark目錄下
ii. ./sbin/start-all.sh
iii. jps主節點發現有Master進程,jps從節點有Worker進程,說明spark啓動完成
c) Spark監控頁面,我就不測試了,通常都是masterIP:8080,若有打不開監控頁面的問題也是防火牆沒有被禁用的問題,請參看個人博文《Hadoop環境搭建過程當中可能遇到的問題》 裏面的問題2有詳細說明。
七、至此,Spark On Yarn的集羣搭建完成。