天天看點

Spark1.3.1 On Yarn的叢集搭建

下面給出的是spark叢集搭建的環境:

作業系統:最小安裝的CentOS 7(下載下傳位址)

Yarn對應的hadoop版本号:Hadoop的Cloudera公司發行版Hadoop2.6.0-CDH5.4.0(下載下傳位址)

Java版本号:JDK1.8(下載下傳位址)

Scala版本号:Scala2.10.4(下載下傳位址)

Spark版本号:spark-1.3.1-bin-hadoop2.6(下載下傳位址)

叢集組成:master  192.168.1.2

                     slave1   192.168.1.3

                     slave2   192.168.1.4

                     slave3   192.168.1.5

1、  作業系統的安裝

我覺得這個就沒必要說了,下載下傳一個虛拟機或者直接在真機安裝,比較簡單,不再贅述。

2、  Java的安裝

請參看我的博文《Jdk1.8在CentOS7中的安裝與配置》有詳細說明。

3、  Scala的安裝

請參看我的博文《Scala2.10.4在CentOS7中的安裝與配置》有詳細說明。

4、  Yarn的部署

Yarn是由Hadoop2.x發展而來,是Hadoop1.x的JobTracker和TaskTracker的更新版本,是hadoop2.x的資源排程工具。搭建Hadoop2.x環境的時候,yarn會自動被搭建好,是以,我們隻需要搭建hadoop環境即可。

Hadoop具體環境搭建,請參看我的博文《Hadoop2.6.0在CentOS 7中的叢集搭建》有詳細說明。

5、  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的配置:

    1.   vi slaves
    2.   添加從節點slave名稱:

        slave1

        slave2

        slave3

  ii.  spark-env.sh的配置

    1.   vi spark-env.sh
    2.   向檔案添加:
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/ [email protected]:/root/app
scp spark-1.3.1-bin-hadoop2.6/ [email protected]:/root/app
scp spark-1.3.1-bin-hadoop2.6/ [email protected]:/root/app      

6、  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有詳細說明。

7、至此,Spark On Yarn的叢集搭建完成。

轉載于:https://www.cnblogs.com/cstzhou/p/4565393.html