为spark-submit指定spark driver

时间:2017-03-03 10:13:43

标签: apache-spark

我从shell脚本提交一个spark作业,该脚本有一堆env变量和参数传递给spark。奇怪的是,驱动程序主机不是这些参数之一(但是有驱动程序核心和内存)。因此,如果群集中有3台计算机,则会随机选择一个驱动程序。我不想要这种行为,因为1)我提交的罐子只在其中一台机器上; 2)驱动器机器通常应该比其他机器小,如果它是#39随机选择。

到目前为止,我发现无法在spar-submit的命令行中指定此参数。我已经尝试了--conf SPARK_DRIVER_HOST="172.30.1.123--conf spark.driver.host="172.30.1.123和许多其他事情,但没有任何效果。我使用spark 2.1.0。感谢。

2 个答案:

答案 0 :(得分:1)

我假设你正在运行Yarn集群。简言之,纱线使用容器来启动和实施任务。资源管理器根据资源的可用性决定在哪个容器上运行。在spark案例中,驱动程序和执行程序也作为具有单独jvms的容器启动。驱动程序致力于在执行程序之间拆分任务并从中收集结果。如果您启动应用程序的节点包含在集群中,那么它也将用作启动驱动程序/执行程序的共享资源。

答案 1 :(得分:1)

来自文档:http://spark.apache.org/docs/latest/running-on-yarn.html

在独立或Mesos中运行群集时,可以使用以下命令启动驱动程序主机(这是主服务器):

--master <master-url> #e.g. spark://23.195.26.187:7077

使用YARN时,它的工作方式略有不同。这里的参数是纱线

--master yarn

纱线在Hadoop中指定其ResourceManager的配置。有关如何执行此操作,请参阅此有趣的指南https://dqydj.com/raspberry-pi-hadoop-cluster-apache-spark-yarn/。基本上在hdfs中hdfs-site.xml和纱线yarn-site.xml