1. 程式人生 > >Spark執行模式詳解

Spark執行模式詳解

Spark執行模式


Local模式

Local[n] 本地模式 啟動n個執行緒
Local模式通常用於測試用,直接bin/spark-shell啟動即可。


Standalone模式

Standalone是Spark自帶的資源管理器,無需依賴任何其他資源管理系統

配置

vim conf/spark-env.sh

 

 

可以看到其中關於standalone模式的配置引數

Standalone引數

主要配置如下引數:

SPARK_MASTER_HOST=master
SPARK_MASTER_PORT=7077
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=1g
SPARK_CONF_DIR=/usr/local/spark-2.2.0-bin-hadoop2.6.0-cdh5.11.1/conf

啟動

cd /usr/local/spark-2.2.0-bin-hadoop2.6.0-cdh5.11.1/sbin/
./start-master.sh //在哪臺機器上啟動 那臺機器就成了Master
./start-slaves.sh //啟動所有的從節點

  • sbin目錄總結:
    sbin/start-master.sh - 在當前機器上啟動一個主節點。
    sbin/start-slaves.sh- 在conf/slaves檔案中指定的所有機器上啟動一個從節點。
    sbin/start-slave.sh - 在當前機器上啟動一個從節點。
    sbin/start-all.sh - 啟動所有master和slave。
    sbin/stop-master.sh- 停止master。
    sbin/stop-slaves.sh- 停止所有slave。
    sbin/stop-all.sh - 停止所有master和slave。

驗證

  • 使用命令jps檢視程序。master機器上會有Master和Worker。slave機器上會有Worker程序。

     

    master機器

    slave機器

  • web端介面顯示

     

    8080埠介面

客戶端測試

bin/spark-shell --master spark://master:7077

啟動客戶端


可以在Web端實時的看見Spark的執行任務

 

WEB UI


Yarn模式

使用Hadoop中的Yarn作為資源管理器。
Yarn Cluster:主程式邏輯和任務都執行在Yarn叢集中
Yarn Client:主程式邏輯執行在本地,任務執行在Yarn叢集中

配置

HADOOP_CONF_DIR必須有export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0-cdh5.11.1/etc/hadoop
其他可選,根據自己的需求配

Yarn引數

 

啟動

bin/spark-shell --master yarn //注意要先啟動hadoop

驗證

能在yarn的web介面上看見spark shell這個程序:

 

yarn WEB UI

Spark程式提交


提交方式分為Standalone(client\cluster)和Yarn(client\cluster) 四種。
首先編寫好我們的wordcount程式然後打成jar包,傳到我們的伺服器上。

object Wordcount {
  def main(args:Array[String]): Unit ={
   val conf = new SparkConf().setAppName("WordCount")
   val sc = new SparkContext(conf)
   val inputpath = args(0)
   val lines = sc.textFile(inputpath)
   val words = lines.flatMap(line=>line.split(" "))
   words.count()
   val wordcounts = words.map(word=>(word,1)).reduceByKey(_+_)
   wordcounts.saveAsTextFile(args(1))
 } 
}

我們需要使用spark的bin/spark-submit來提交我們的程式,具體引數使用help命令檢視:
bin/spark-submit --help

spark-submit

 

Standalone模式 client

bin/spark-submit \
--class cn.lyl.spark.Wordcount  \
--master spark://master:7077  \
--executor-memory 1G  \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount1

wordcount1檔案目錄

Standalone模式 cluster

bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--master spark://master:7077 \
--executor-memory 1G \
--deploy-mode cluster \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount2

叢集模式下Web監控介面

Yarn模式 client

bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--deploy-mode client \
--master yarn \
--executor-memory 1G \
wordcount.jar \
hdfs://master:8020/user/README.txt \
hdfs://master:8020/user/wordcount3

Yarn Client

Yarn cluster

bin/spark-submit \
--class cn.lyl.spark.Wordcount \
--deploy-mode cluster  \    
--master yarn  \
--executor-memory 1G  \
wordcount.jar  \
hdfs://master:8020/user/README.txt  \
hdfs://master:8020/user/wordcount4

 



作者:Seven_Ki
連結:https://www.jianshu.com/p/b4d3db386925