在YARN上运行Spark
确保HADOOP_CONF_DIR
或YARN_CONF_DIR
指向的目录包含Hadoop集群的(客户端)配置文件。这些配置用于写数据到dfs和连接到YARN ResourceManager。
有两种部署模式可以用来在YARN上启动Spark应用程序。在yarn-cluster模式下,Spark driver运行在application master进程中,这个进程被集群中的YARN所管理,客户端会在初始化应用程序
之后关闭。在yarn-client模式下,driver运行在客户端进程中,application master仅仅用来向YARN请求资源。
在yarn-cluster模式下启动Spark应用程序。
例子:
在yarn-client模式下启动Spark应用程序,运行下面的shell脚本
添加其它的jar
在yarn-cluster模式下,driver运行在不同的机器上,所以离开了保存在本地客户端的文件,SparkContext.addJar
将不会工作。为了使SparkContext.addJar
用到保存在客户端的文件,
在启动命令中加上--jars
选项。
- Spark executors使用的本地目录将会是YARN配置(yarn.nodemanager.local-dirs)的本地目录。如果用户指定了
spark.local.dir
,它将被忽略。 --files
和--archives
选项支持指定带 # 号文件名。例如,你能够指定,它上传你在本地命名为localtest.txt
的文件到HDFS,但是将会链接为名称appSees.txt
。当你的应用程序运行在YARN上时,你应该使用appSees.txt
去引用该文件。