Spark集羣搭建

集羣規劃:
            節點         Spark
          node1       1(master)
          node2       1(worker)
          node3       1(worker)
          node4       1  (客戶端)

1、上傳安裝包,解壓到/home/目錄下;
2、在hadoop1主機上,進入/home/spark-1.6.0-bin-hadoop2.6/conf 目錄下,修改 spark-env.sh 文件(如果沒有該文件,則將spark-env.sh.template修改爲spark-env.sh),添加如下配置:
export SPARK_MASTER_IP=node1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=1g
注:7077是master節點與worker節點進行通信的端口,默認是7077。另外spark提供了webUI的界面,默認端口是8080,在${spark-home}/bin/start-master.sh中配置。
3、在同一個目錄下,修改slaves文件(若沒有slaves文件,則修改slaves.template爲slaves),刪除原有配置,添加如下配置:
node2
node3
4、將hadoop1上配置好的安裝包,同步至hadoop2、hadoop3兩臺主機上。
[root@node1 home]# pwd
/home
[root@node1 home]# scp -r spark-1.6.0-bin-hadoop2.6/ node2:`pwd`
[root@node1 home]# scp -r spark-1.6.0-bin-hadoop2.6/ node3:`pwd`
5、啓動Spark集羣:在master節點(node1)上,進入/home/spark-1.6.0-bin-hadoop2.6/sbin 目錄,執行啓動命令:
[root@node1 sbin]# ./start-all.sh
注意:啓動的時候,要注意添加路徑,因爲腳本名稱和hadoop集羣的腳本名稱相同,故此處要指明腳本的路徑。
6、使用jps命令查看各節點上的進程,驗證集羣是否啓動成功。
訪問Web管理界面,驗證是否搭建成功。http://192.168.152.101:8080/




 在實際使用的時候,一般不在spark集羣(即本文的 node1~node3 主機)直接提交作業,而是在一臺專門的客戶端加上去提交。 下面以 node4 作爲客戶端,說明客戶端的搭建和使用方式。
其實spark客戶端的搭建與使用十分簡單,只需要把spark的安裝包拷貝至客戶端上即可, 拷貝完成後,就可以在客戶端進行提交任務的操作。
在node1主機上,執行如下命令,將spark的安裝包拷貝至客戶端:
scp -r /home/spark-1.6.0-bin-hadoop2.6  node4:`pwd`



Spark任務提交命令(standalone模式下):
./spark-submit --master spark://node1:7077 --deploy-mode client --jars ../lib/spark-examples-1.6.0-hadoop2.6.0.jar --class org.apache.spark.examples.SparkPi 100





Spark on Yarn:
    說明:
         1、在standalone模式下,資源調度與任務執行的節點分別叫做 masterworker ;
       在yarn模式下,負責資源調度與任務執行的接口分別叫做 resourcemanager 和 nodemananger。
    2、將spark應用提交到yarn上時,沒有用到standalone集羣,所以standalone集羣可以關閉。
    
    要將spark應用提交到yarn上運行, 需進行兩項準備工作:
1、提前將yarn和hdfs啓動(啓動hdfs的目的在於:在提交任務時,spark框架會將jar包上傳到hdfs集羣上,這樣各個計算節點就可以從hdfs集羣上獲取jar包,以進行計算任務,hdfs此時的作用相當於ftp服務器),可將hadoop集羣啓動,也可以單獨啓動hdfs和yarn。
start-all.sh
2、修改客戶端配置:spark-env.sh , 指定hadoop配置文件的目錄(務執行前,會向resourcemanager申請資源。spark框架會從此項配置中獲取resourcemanager運行在哪個節點上)。
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    準備工作做好之後,就可以提交命令,將spark應用提交到yarn上運行了
./spark-submit --master yarn --jars ../lib/spark-examples-1.6.0-hadoop2.6.0.jar --class org.apache.spark.examples.SparkPi 100
    關於--master的說明,  有三種取值:
            (a) yarn-client       以客戶端方式提交
            (b) yarn-cluster     以集羣方式提交
            (c) yarn                 等同於 yarn-client



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章