Spark集羣部署(standLone)模式

 

安裝部署:java

1. 配置spark爲1個master,2個slave的獨立集羣(Standlone)模式,linux

    能夠在VMWare中構建3臺運行Ubuntu的機器做爲服務器;web

    master主機配置以下:ubuntu

    vim /etc/hostname 編輯此文件,設置主機名爲mastervim

    vim /etc/hosts 編輯此文件,添加以下主機內容信息:瀏覽器

    192.168.189.128 masterbash

    192.168.189.129 slave1服務器

    192.168.189.130 slave2oracle

    同理配置slave1,slave2主機。app

 

 

 

2. 下載安裝jdk1.8.0_91,並設置好環境變量;

   jdk下載路徑:https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz

   

   下載安裝scala-2.12.2,下載路徑:https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.tgz

   並設置好環境變量(spark是基於scala語言編寫的,同時scala又運行於JVM之上),

    以下命令:     

    vim .bashrc 編輯此文件,添加以下內容:   

     export JAVA_HOME=/usr/local/jdk1.8.0_91

     export JAVA_BIN=$JAVA_HOME/bin

     export JAVA_LIB=$JAVA_HOME/lib

     export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

     export PATH=$JAVA_BIN:$PATH

     export SCALA_BIN=/usr/local/scala-2.12.2/bin

     export PATH=$PATH:$SCALA_BIN

     退出root帳戶,從新登錄,使環境變量生效。

     master,slave1,slave2三臺服務器配置同樣。

 

3.  安裝配置ssh,使得三臺主機ssh登陸免密碼,由於集羣裏面的主機須要在後臺通訊。

   (1)安裝:

       SSH分客戶端openssh-client和openssh-server,若是你只是想登錄別的機器的SSH只須要安裝openssh-client(ubuntu有默認安裝客戶端),若是要使本機開放SSH服務就須要安裝openssh-server。

   (2) 配置免密碼登錄:

          在master主機上登錄root用戶,輸入命令:ssh-keygen -t rsa  

           而後根據提示一直按enter,就會按默認的選項生成的密鑰對(私鑰id_rsa和公鑰id_rsa.pub)並保存在/root/.ssh文件夾中;

           將master服務器上的公鑰拷貝到slave1上,輸入命令:ssh-copy-id root@slave1(root爲slave1上的帳戶)

          將master服務器上的公鑰拷貝到slave2上,輸入命令:ssh-copy-id root@slave2(root爲slave2上的帳戶)

         能夠測試免密碼登錄是否成功,輸入命令:ssh slave1

        

 

4. Spark獨立集羣中的workers配置   

      在Spark 目錄下建立一個文件conf/slaves, 列出全部啓動Spark workers的主機名,每行一條記錄,以下面master主機的配置:   

      #localhost

      slave1

      slave2

5. 配置SPARK的JAVA_HOME

      編輯全部主機上的sbin/spark-config文件,添加export JAVA_HOME=/usr/local/jdk1.8.0_91

 

 6. 配置整個集羣的環境變量(可選) 

    經過conf/spark-env.sh進一步配置整個集羣的環境變量,以下變量,這裏先用默認的值 。

變量

描述

SPARK_MASTER_IP

綁定一個外部IP給master.

SPARK_MASTER_PORT

從另一個端口啓動master(默認: 7077)

SPARK_MASTER_WEBUI_PORT

Master的web UI端口 (默認: 8080)

SPARK_WORKER_PORT

啓動Spark worker 的專用端口(默認:隨機)

SPARK_WORKER_DIR

伸縮空間和日誌輸入的目錄路徑(默認: SPARK_HOME/work);

SPARK_WORKER_CORES

做業可用的CPU內核數量(默認: 全部可用的);

SPARK_WORKER_MEMORY

做業可以使用的內存容量,默認格式1000M或者 2G (默認:  全部RAM去掉給操做系統用的1 GB);注意:每一個做業本身的內存空間由SPARK_MEM決定。

SPARK_WORKER_WEBUI_PORT

worker 的web UI 啓動端口(默認: 8081)

SPARK_WORKER_INSTANCES

每臺機器上運行worker數量 (默認: 1). 當你有一個很是強大的計算機的時候和須要多個Spark worker進程的時候你能夠修改這個默認值大於1 . 若是你設置了這個值。要確保SPARK_WORKER_CORE 明確限制每個r worker的核心數, 不然每一個worker 將嘗試使用全部的核心 。

SPARK_DAEMON_MEMORY

分配給Spark master和 worker 守護進程的內存空間 (默認: 512m)

SPARK_DAEMON_JAVA_OPTS

Spark master 和 worker守護進程的JVM 選項(默認: none)

 

7. 啓動集羣  

   經過命令:sbin/start-all.sh 

   同時啓動master以及上面所說文件中指定的slave

 

8. 輸入http://localhost:8080/看集羣是否啓動成功

    成功啓動後的界面

 

   

9. 在web界面上監控集羣執行的細節

      須要打開conf/spark-default.conf文件,添加以下內容:   

     spark.eventLog.enabled           true

     spark.eventLog.dir               file:/tmp/spark-events

      注意須要先在/tmp目錄下建立文件夾spark-events,由於後面全部應用執行的事件日誌會存放在這。

      修改文件夾權限: chmod 777 spark-events , 以便JVM有權建立和讀取文件。

 

      在master主機上啓動spark-history-server,執行命令:./sbin/start-history-server.sh

      在瀏覽器中輸入: http://master:18080/  查看應用執行狀況,以下圖所示:

     

 

 

點擊具體某一個application,能夠查看具體每個應用執行的細節

 

 

10. spark執行流程

 

11. spark-submit應用程序提交時,master參數配置項可取值

相關文章
相關標籤/搜索