首页 文章

在单独的机器上运行火花驱动器

提问于
浏览
1

目前我在集群模式下使用Spark 2.0.0(Standalone cluster),具有以下集群配置:

工作人员:4个正在使用的核心:32个总计,32个使用中的内存:54.7 GB总计,42.0 GB使用

我有4个奴隶( Worker )和1个主机 . Spark集群有3个主要部分 - Master,Driver,Workers(ref

现在我的问题是驱动程序正在其中一个工作节点启动,这阻止了我使用工作节点的全部容量(RAM明智) . 例如,如果我为驱动程序运行带有2g内存的spark作业,那么每台机器中只有~13gb的内存用于执行程序内存(假设每台机器的总RAM为15gb) . 现在我认为有两种方法可以解决这个问题:

1)在主机上运行驱动程序,这样我就可以指定完整的15GB RAM作为执行程序内存

2)明确指定驱动程序计算机(其中一个工作程序节点),并相应地为此计算机分配内存到驱动程序和执行程序 . 对于其余的工作节点,我可以指定最大执行程序内存 .

我如何实现第1点或第2点?或者它甚至可能吗?
任何指向它的人都表示赞赏 .

1 回答

  • 1

    要在主服务器上运行驱动程序,请从主服务器运行 spark-submit 并指定 --deploy-mode client . Launching applications with spark-submit .

    使用 --deploy-mode cluster 时,无法指定驱动程序将运行的工作程序 . 但是,如果使用群集管理器(如yarn或mesos),则可以在worker上运行驱动程序并实现最大的群集利用率 .

相关问题