ApplicationMaster (YARN-Spark) for each job submit?



这可能更像是一个"理论"或"良好实践"问题,而不是严格的实践问题(代码或集群配置文件没有问题(。

因此,遵循这个简单的方案:

  • 通过RESt(Apache Livy(提交,比如说,10个火花作业到一个YARN-SPARK集群,
  • 由于资源管理配置,其中 5 个正在运行,5 个已接受/挂起,

这会导致10 个 AM 实例在主节点中同时运行(消耗大量 RAM(吗?

如果是这样的话,还有其他方法吗?考虑到这一点:

  • 工作请求很快,
  • 每次,集群将收到近 1000 个请求,
  • 每个作业需要 15 秒才能完成(有时更短,具体取决于每次调用中接收到的数据量(,
  • 有限的资源(3 个工作线程,每个 6GB 和 4 个内核 + 主节点(

让我知道我是否正确理解了你的问题。使用单独的 Spark-submit ,您意味着调用单独的请求。 因此,所有请求都将进入 yarn-scheduler,并且根据资源可用性,它们将处于运行或提交或挂起状态。

现在,我们有两种方法可以在 yarn 上提交作业 ->客户端模式和集群模式。

如果在客户端模式下提交作业,则驱动程序在客户端进程中运行,并且应用程序主节点仅用于从 YARN 请求资源。因此,不同的作业请求将在同一台计算机上创建不同的驱动程序(和关联的 AM(。这应该与你有关

如果在群集模式下提交作业,则驱动程序将在由群集上的 YARN 管理的应用程序主进程中运行。因此,不同的作业请求将在不同的计算机上创建不同的应用程序主节点(内部驱动程序(。

因此,查看您的用例,很明显,对传入请求的大型使用负载均衡器。并在群集模式下提交作业。 在此之后,可以使用最佳做法属性优化应用程序。

相关内容

  • 没有找到相关文章

最新更新