远程提交Spark应用到集群

介绍如何在集群之外提交Spark任务到集群。

Spark目前支持三种集群,分别是Spark自实现的standalone集群、mesos集群和YARN集群。

使用standalone集群,提交应用时使用–master参数指定集群地址,如 --master spark://masternode:7077

所以只需要有spark的客户端,可以很方便的远程提交应用到指定的集群。

使用mesos集群,同样是指定–master参数为集群地址,如 --master mesos://master66:5050。这种形式和standalone集群很相似,也可以很方便的通过远程来提交应用。

使用YARN集群,–master参数指定为YARN,但是要求预先设置HADOOP_CONF_DIR或者YARN_CONF_DIR的环境变量,这个环境变量指向hadoop相关配置的目录。spark客户端会读取并解析其中的配置文件,并使用其中的配置信息来连接集群管理器。

如果要在远程提交应用到Yarn集群,最简单的方式就是从集群把这些配置下载下来,然后配置环境变量。

具体可以参考资料:

  1. Remote Spark Jobs on YARN
  2. Spark submit YARN mode HADOOP_CONF_DIR contents
  3. How to submit a spark job on a remote master node in yarn client mode?

我想,或许我们可以找出spark需要的配置项,然后通过命令行的方式来指定,而不用通过配置目录的环境变量,这样我可以灵活的切换不同的集群,而我确实有这个需要。

这一个方向还有待探索。

在windows系统提交应用的示例:

1
set HADOOP_CONF_DIR=E:LOCALCLUSTERSERVICE-HADOOP-a1e7b238d7f044d6b70185654c855c52 &

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章