apache-spark - 有没有一种简单的方法可以使用带有 Yarn 的 Spark 排除节点?
问题描述
概述
我真的不想要队列或节点标签。我只想指定这个 spark 应用程序应该在 2 个 worker 上运行,随意选择它们。我似乎无法做到这一点,所以我已经在自己的节点标签上设置了每个节点,并制作了限制对某些节点的访问的队列。
情况
假设我有节点标签 a,b,c 用于节点http://a.example:10000、http://b.example:10000和http://c.example:10000。
我有队列: 1_q,2_q,3_q
1_q可访问
2_q可访问a,b
3_q可访问a,b,c
我希望能够使用队列 1_q 并让它运行 100% 的资源
我希望能够使用队列 2_q 并让它运行 100% 的 a 和 100% 的 b
我希望能够使用排队 3_q 并让它运行 100% 的 a 和 100% 的 b 和 100% 的 c
我已将节点标签 a、b、c 设置为“exclusive=false”并尝试“exclusive=true”。我能够使用“exclusive = false”来处理事情,但它使用的不仅仅是可访问节点。我尝试了“exclusive=true”,但 3_q 在默认分区中运行,没有任何资源,因此没有任何运行。
已经有一个 pyspark 属性
,我真的认为所有这些都是矫枉过正的。
有一个 pyspark 属性:
spark.yarn.exclude.nodes
但根据我的经验,它没有做任何事情。我已经尝试过:
conf.set("spark.yarn.exclude.nodes","a")
以及
conf.set("spark.yarn.exclude.nodes","a.example")
但它不排除它们,即我可以清楚地看到容器在使用该应用程序的 yarn web ui 的那些节点上运行
如果我可以设置一个包含所有可用分区的队列,然后使用该属性将它们排除在外,那就太好了。
或者
如果“节点标签表达式”可以包含多个标签,那就太好了。
这种使用 yarn/spark/pyspark 的方式看起来是否合理(基于每个应用程序排除一些节点?)
解决方案
推荐阅读
- arrays - 我对 Fortran 代码有一个奇怪的问题
- java - 如何为框架设置彩色背景?
- ios - iOS 工具栏 barbuttonitem spacer
- python-3.x - 编写天文/天体动力学程序时遇到的问题
- docker - docker:关于 docker 图像格式和图层的建议
- azure-cosmosdb - 如何在 Azure 搜索数据源中传递 SP
- html - 使用 flexbox 在每个旁边添加多个左侧和右侧边栏
- java - 在线判断给出运行时错误(NZEC)
- mercurial - hg 状态返回空白但文件已更改
- sql-server - 基于 SQL Server 2012 中特定列的小计