本文全部手寫原創(chuàng),請(qǐng)勿復(fù)制粘貼李请、轉(zhuǎn)載請(qǐng)注明出處瞧筛,謝謝配合!
Spark運(yùn)行模式
Local模式
Local[n] 本地模式 啟動(dòng)n個(gè)線程
Local模式通常用于測(cè)試用导盅,直接bin/spark-shell啟動(dòng)即可驾窟。
Standalone模式
Standalone是Spark自帶的資源管理器,無需依賴任何其他資源管理系統(tǒng)
配置
vim conf/spark-env.sh
主要配置如下參數(shù):
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
啟動(dòng)
cd /usr/local/spark-2.2.0-bin-hadoop2.6.0-cdh5.11.1/sbin/
./start-master.sh
//在哪臺(tái)機(jī)器上啟動(dòng) 那臺(tái)機(jī)器就成了Master
./start-slaves.sh
//啟動(dòng)所有的從節(jié)點(diǎn)
- sbin目錄總結(jié):
sbin/start-master.sh - 在當(dāng)前機(jī)器上啟動(dòng)一個(gè)主節(jié)點(diǎn)认轨。
sbin/start-slaves.sh- 在conf/slaves文件中指定的所有機(jī)器上啟動(dòng)一個(gè)從節(jié)點(diǎn)绅络。
sbin/start-slave.sh - 在當(dāng)前機(jī)器上啟動(dòng)一個(gè)從節(jié)點(diǎn)。
sbin/start-all.sh - 啟動(dòng)所有master和slave嘁字。
sbin/stop-master.sh- 停止master恩急。
sbin/stop-slaves.sh- 停止所有slave。
sbin/stop-all.sh - 停止所有master和slave纪蜒。
驗(yàn)證
-
使用命令jps查看進(jìn)程衷恭。master機(jī)器上會(huì)有Master和Worker。slave機(jī)器上會(huì)有Worker進(jìn)程纯续。
master機(jī)器slave機(jī)器 -
web端界面顯示
8080端口界面
客戶端測(cè)試
bin/spark-shell --master spark://master:7077
可以在Web端實(shí)時(shí)的看見Spark的運(yùn)行任務(wù)
Yarn模式
使用Hadoop中的Yarn作為資源管理器随珠。
Yarn Cluster:主程序邏輯和任務(wù)都運(yùn)行在Yarn集群中
Yarn Client:主程序邏輯運(yùn)行在本地,任務(wù)運(yùn)行在Yarn集群中
配置
HADOOP_CONF_DIR必須有export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0-cdh5.11.1/etc/hadoop
其他可選猬错,根據(jù)自己的需求配
啟動(dòng)
bin/spark-shell --master yarn
//注意要先啟動(dòng)hadoop
驗(yàn)證
能在yarn的web界面上看見spark shell這個(gè)進(jìn)程:
Spark程序提交
提交方式分為Standalone(client\cluster)和Yarn(client\cluster) 四種窗看。
首先編寫好我們的wordcount程序然后打成jar包,傳到我們的服務(wù)器上倦炒。
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來提交我們的程序显沈,具體參數(shù)使用help命令查看:
bin/spark-submit --help
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
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
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 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