现在EMR支持缩小EMR上的Core节点,如果我创建一个包含1个核心节点作为spot实例的EMR集群。当现货价格超过核心节点的出价时会发生什么?它会优雅地解除核心节点吗?
以下是亚马逊关于缩小核心节点数量的过程的描述:
在核心节点上,YARN NodeManager和HDFS DataNode守护进程都必须是 退役以使实例组缩小。对于YARN, graceful shrink确保仅标记为退役的节点 如果没有待处理或转换,则转换到DECOMMISIONED状态 不完整的容器或应用。退役结束 如果节点上没有正在运行的容器,则立即执行 退役的开始。
对于HDFS,正常收缩可确保HDFS的目标容量 大到足以适应所有现有的块。如果目标容量不是 足够大,只有部分核心实例 退役,以便其余节点可以处理当前 驻留在HDFS中的数据。您应该确保额外的HDFS容量 允许进一步退役。您还应该尽量减少写入 尝试缩小实例组之前的I / O可能会延迟实例组 完成调整大小操作。
另一个限制是默认复制因子dfs.replication 在/ etc / hadoop / conf / hdfs-site内。 Amazon EMR配置该值 基于集群中的实例数:1个,包含1-3个实例, 2表示具有4-9个实例的集群,3表示具有10+的集群 实例。优雅缩小不允许缩小核心节点 低于HDFS复制因子;这是为了防止HDFS 由于副本不足,无法关闭文件。为了规避这个 限制,您必须降低复制因子并重新启动NameNode 守护进程。
答案 0 :(得分:1)
我认为在Spot价格飙升的情况下(可能是N核心节点的一般情况),可能无法优雅地停用节点。在由于价格飙升而删除竞价型实例之前,可能会有2分钟的通知。即使被捕获,这段时间也可能不足以保证HDFS数据的停用。
此外,由于群集中只有1个核心节点,因此退役并没有多大意义。需要将群集中保存的数据移动到其他节点,在这种情况下这些节点不可用。一旦唯一可用的核心节点丢失,就需要有一种方法可以恢复,否则群集无法运行任何任务。
无耻插头:):我为Qubole工作!
以下2篇博客文章可能有助于将Spot实例与Hadoop集群集成,包括处理竞价价格上涨。
https://www.qubole.com/blog/product/riding-the-spotted-elephant https://www.qubole.com/blog/product/rebalancing-hadoop-higher-spot-utilization