如何在集群模式下提交EMR作业,将Application Master部署在按需CORE节点上
根据AWS EMR的节点规则,默认仅CORE节点支持运行Application Master,TASK节点不承载该类进程。当你的CORE节点同时包含spot(竞价)和ondemand(按需)两种计费类型时,可以通过配置实现优先选择ondemand CORE节点运行Application Master,具体操作方式如下:
- 第一步:为不同计费模式的CORE节点绑定差异化的YARN节点标签,给所有ondemand类型的CORE节点绑定专属标签如
am_preferred,spot类型的CORE节点无需绑定该标签 - 第二步:调整YARN调度器的Application Master调度规则:
- 若使用EMR默认的Capacity调度器,修改配置项
yarn.am.node-label-expression值为刚才设置的专属标签am_preferred,指定AM优先调度到带该标签的节点;同时可配置yarn.am.node-label-expression.fallback.enable为true,当ondemand CORE节点资源不足时允许AM调度到其他节点,避免任务无法启动 - 若使用Fair调度器,在对应调度队列的配置中添加AM调度优先级规则,将ondemand CORE节点的调度权重设置为远高于spot CORE节点即可
- 若使用EMR默认的Capacity调度器,修改配置项
- 如果你需要完全禁止AM运行在spot CORE节点上,关闭上述fallback配置即可,需注意提前预留足够的ondemand CORE节点资源承载所有AM的资源需求,避免任务提交后一直处于待调度状态。
内容的提问来源于stack exchange,提问作者Grish
相关产品推荐
相关产品推荐

