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