Spark的StandAlone集羣模式安裝部署

StandAlone集羣模式的介紹與部署

集羣角色介紹

Spark是基於內存計算的大數據並行計算框架,實際中運行計算任務肯定是使用集羣模式,那麼就需要了解spark自帶的standalone集羣模式的架構以及它的運行機制

stand alone集羣模式使用了分佈式計算中的master - slave模型
master是集羣中含有master進程的節點
slave是集羣中worker節點含有Executor進程

Spark架構圖如下:
在這裏插入圖片描述
Apache對spark架構的官方描述:http://spark.apache.org/docs/latest/cluster-overview.html

集羣規劃

節點1:master
節點2:slave/worker
節點3:slave/worker

修改配置並分發

  • 修改spark配置文件
    進入spark解壓路徑的conf目錄:cd /export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/conf/
    拷貝spark-env.sh.template並修改名稱爲spark-env.sh:cp spark-env.sh.template spark-env.sh
  • 修改並添加配置
#配置java環境變量
export JAVA_HOME=${JAVA_HOME}
#指定spark Master的IP
export SPARK_MASTER_HOST=node01
#指定spark Master的端口
export SPARK_MASTER_PORT=7077
  • 修改slave配置文件
    拷貝並重命名slaves文件:cp ./slaves ./slaves
    編輯slaves文件:vim slaves
node02
node03
  • 通過scp命令將配置文件分發到其他機器上
scp -r /export/servers/spark node02:/export/servers
scp -r /export/servers/spark node03:/export/servers

啓動和停止

  • 集羣啓動和停止
    在主節點上啓動spark集羣:
    /export/servers/spark/sbin/start-all.sh
    在主節點上停止spark集羣:
    /export/servers/spark/sbin/stop-all.sh
  • 單獨啓動和停止:
    在master安裝節點上啓動和停止master:
    start-master.sh|stop-master.sh
  • 在master所在節點上啓動和停止worker:
    start-slaves.sh|stop-slaves.sh

啓動後訪問web界面查看:
http://node01:8080

測試

需求:使用集羣模式運行spark程序讀取hdfs上的文件並執行wordcount、

實現

集羣模式啓動spark-shell:
/export/servers/spark-2.2.0-bin-2.6.0-cdh5.14.0/bin/spark-shell --master spark://node01:7077

運行程序:

sc.textFile("hdfs://node01:8020/wordcount/input/words.txt")
.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
.saveAsTextFile("hdfs://node01:8020/wordcount/output2")

瀏覽器訪問(SparkContext Web UI)
http://node01:4040/jobs/


注意

  • 集羣模式下程序是在集羣上運行的,不要直接讀取本地文件,應該讀取hdfs上的文件,因爲程序運行在集羣上,具體在哪個節點上我們運行並不知道,其他節點可能並沒有那個數據文件
  • spark集羣模式的啓動spark/start-all.sh和啓動Hadoop集羣的啓動命令hadoop/sbin/start-all.sh一致,爲避免和Hadoop的命令衝突,不建議配置spark的環境變量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章