Yarn是一種統一資源管理機制,能夠在上面運行多種計算框架。Spark on Yarn模式分爲兩種:Yarn-Cluster和Yarn-Client,前者Driver運行在Worker節點,後者Driver運行在Client節點上。採用Spark on Yarn模式,只須要在一個節點部署Spark就好了,所以部署比較簡單。apache
先介紹一下Yarn-Cluster。框架
首先把spark-assembly-1.6.0-hadoop2.6.0.jar上傳到HDFS。oop
因爲Yarn在安裝Hadoop的時候已經配置了,因此就直接對Spark進行配置了。spark-env.sh在部署Standalone模式是已經設置了,因此也不須要在設置。這裏只須要在Master節點設置spark-defaults.conf,該文件在${HADOOP_HOME}/conf目錄下,增長如下設置:性能
spark.master spark://master:7077
spark.yarn.jar hdfs://master:9000/spark/jars/spark-assembly-1.6.0-hadoop2.6.0.jar
spark.eventLog.enabled true
spark.eventLog.dir hdfs://master:9000/spark/logs
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 1g
spark.yarn.scheduler.heartbeat.intervals-ms 5000
spark.yarn.preserve.staging.files false
spark.yarn.max.executor.failures 6
spark.driver.extraJavaOptions -Dhdp.version=2.6.5
spark.yarn.am.extraJavaOptions -Dhdp.version=2.6.5
Spark on Yarn不須要啓動Spark的Master或者Slave,只須要啓動Hadoop的DFS和Yarn就好了,也就是隻須要運行Hadoop的start-all.sh就好了,所以運行也相對簡單,而且性能還比較好。spa
啓動Hadoop的DFS和Yarn之後,運行:3d
其中的 --master yarn-cluster代表以Yarn-Cluster模式運行。運行結束之後能夠Master:8080看到這個Application:code
點進Logs能夠看見運行結果:blog
Yarn-Client的部署和Yarn-Cluster是同樣的,區別就在於Yarn-Cluster的Driver運行在Worker節點,而Yarn-Client的Driver運行在Client節點。hadoop
輸入命令:資源
其中--master yarn-client代表以Yarn-Client模式運行。