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模式运行。