yarn端口 ResourceManager (RM) 负责跟踪群集中的资源并安排应用程序(例如MapReduce 作业)。在 CDH 5之前RM 是 yarn端口 群集中的单点故障。RM 高可用性 (HA) 功能以活动/待机 RM 对形式添加冗余以删除此单点故障。此外茬从待机 RM 到活动 RM 进行故障转移时,应用程序可以从其上次检查点状态恢复;例如在 MapReduce 作业中完成的 map 任务不在后续的尝试中重新运行。这样鈳以在不对运行中的应用程序产生任何重要性能影响的情况下处理以下事件:
RM HA 通过活动-待机 RM 对的方式实施。启动时每个 RM 处于待机状态:启动过程,但未加载状态转换到活动状态时,RM 会从指定的状态存储加载内部状态并启动所有内部服务。管理员(通过的 CLI)或通过集成的故障转移控制器(启用自动故障转移时)可促进转换为活动状态下面的小节提供了有关 RM HA 组件的更多详细信息。
RM 重启允许重启 RM同时恢复运行中的应用程序(如果启用恢复)。為此RM 将其内部状态(主要是与应用程序相关的数据和令牌)存储在 RMStateStore 中;NodeManagers 连接时,重新构建群集资源状态存储的可用选择包括 MemoryRMStateStore(基于内存的实施)、FileSystemRMStateStore(基于文件系统的实施;HDFS
当运行两个 RM 时,如果两个 RM 都假定它们处于活动状态则此时可能会出现“裂脑”情况。为了避免此情况应只有一个 RM 能够执行活动操作,另一 RM 应“隔离”基于 Zookeeper 的状态存储 (ZKRMStateStore) 允许单个 RM 更改已存储的状态,隐式隔离另一 RM通过 RM 声明以独占方式创建-删除根 znode 上的权限,来实现这一操作会根据为存储配置的 ACL 自动创建根 znode 上的 ACL;在安全群集中,Cloudera 建议您为根节点设置 ACL以便两个 RM 共享读取-写入-管理访问权限,但拥有独占的创建-删除访问权限隔离是隐式的,不需要显式配置(与 HDFS 中的隔离和 MRv1 操作的一样)例如,如果您选择使用不同的状态存储实现可以插入自定义“隔离程序”。
RPC 地址自动与活动 RM 通信即使在故障转移后。为实现这一操作它們在配置中循环 RM 列表。这将自动完成不需要任何配置(与在 HDFS 和 MapReduce (mrv 1) 中执行的操作一样)。
默认情况下RM HA 使用 ZKFC(基于 Zookeeper 的故障转移控制器),在活动 RM 不可访问或发生故障时进行自动故障转移ActiveStandbyElector 在内部用于选择活动的 RM。故障转移控制器作为 RM 的一部分运行(不像在 HDFS 和 MapReduce v1 中一樣作为单独过程)在 yarn端口-site.xml 中配置相应的属性后,无需进一步设置
如果愿意,可以插入自定义故障转移控制器
您可以使用命令行工具 yarn端口 rmadmin 将特定的 RM 转换为活动或待机状态,从一个 RM 故障转移到另一个获取 RM 的 HA 状态,并监视 RM 的运行状况
Note:启用或禁用 HA 将导致以前的监控历史记录变得不可用。
启用工作保留恢复有关详细信息,包括禁用工作保留恢复的说明请参阅 用於 yarn端口 组件的工作保留恢复。
Note: ResourceManager HA 不会影响 JobHistory Server (JHS)JHS 不保留任何状态,因此如果主机出现故障,您只需将其分配给新主机即可也可以通过执行下列操作来启用进程自动重启:
**配置手动故障转移并根据需要选择自动故障转移
在 yarn端口-site.xml 中配置以下属性(如下所示),无论您是配置手动还是自动故障转移它们足以配置手动故障转移。您需要为自动故障转移配置其他属性
特定于群集,例如 rm1,rm2 |
RM 重启或故障转移时启用作业恢复 |
用于 Zookeeper 状态存储的根节点的 ACL。此处设置的 ACL 应允許两个 ResourceManager 进行读取、写入和管理拥有独占访问权限以创建和删除。如果未指定将根据通过 yarn端口.resourcemanager.zk-acl 指定的 ACL,自动生成根节点 ACL但这会在安全設置中留下安全漏洞 |
在 yarn端口-site.xml 中配置以下额外属性,以配置自动故障转移
以下是展示这些已配置属性的示例 yarn端口-site.xml,包括 RM 和 NM 的工作保留恢复:
yarn端口 ResourceManager (RM) 负责跟踪群集中的资源并安排应用程序(例如MapReduce 作业)。在 CDH 5之前RM 是 yarn端口 群集中的单点故障。RM 高可用性 (HA) 功能以活动/待机 RM 对形式添加冗余以删除此单点故障。此外茬从待机 RM 到活动 RM 进行故障转移时,应用程序可以从其上次检查点状态恢复;例如在 MapReduce 作业中完成的 map 任务不在后续的尝试中重新运行。这样鈳以在不对运行中的应用程序产生任何重要性能影响的情况下处理以下事件:
RM HA 通过活动-待机 RM 对的方式实施。启动时每个 RM 处于待机状态:启动过程,但未加载状态转换到活动状态时,RM 会从指定的状态存储加载内部状态并启动所有内部服务。管理员(通过的 CLI)或通过集成的故障转移控制器(启用自动故障转移时)可促进转换为活动状态下面的小节提供了有关 RM HA 组件的更多详细信息。
RM 重启允许重启 RM同时恢复运行中的应用程序(如果启用恢复)。為此RM 将其内部状态(主要是与应用程序相关的数据和令牌)存储在 RMStateStore 中;NodeManagers 连接时,重新构建群集资源状态存储的可用选择包括 MemoryRMStateStore(基于内存的实施)、FileSystemRMStateStore(基于文件系统的实施;HDFS
当运行两个 RM 时,如果两个 RM 都假定它们处于活动状态则此时可能会出现“裂脑”情况。为了避免此情况应只有一个 RM 能够执行活动操作,另一 RM 应“隔离”基于 Zookeeper 的状态存储 (ZKRMStateStore) 允许单个 RM 更改已存储的状态,隐式隔离另一 RM通过 RM 声明以独占方式创建-删除根 znode 上的权限,来实现这一操作会根据为存储配置的 ACL 自动创建根 znode 上的 ACL;在安全群集中,Cloudera 建议您为根节点设置 ACL以便两个 RM 共享读取-写入-管理访问权限,但拥有独占的创建-删除访问权限隔离是隐式的,不需要显式配置(与 HDFS 中的隔离和 MRv1 操作的一样)例如,如果您选择使用不同的状态存储实现可以插入自定义“隔离程序”。
RPC 地址自动与活动 RM 通信即使在故障转移后。为实现这一操作它們在配置中循环 RM 列表。这将自动完成不需要任何配置(与在 HDFS 和 MapReduce (mrv 1) 中执行的操作一样)。
默认情况下RM HA 使用 ZKFC(基于 Zookeeper 的故障转移控制器),在活动 RM 不可访问或发生故障时进行自动故障转移ActiveStandbyElector 在内部用于选择活动的 RM。故障转移控制器作为 RM 的一部分运行(不像在 HDFS 和 MapReduce v1 中一樣作为单独过程)在 yarn端口-site.xml 中配置相应的属性后,无需进一步设置
如果愿意,可以插入自定义故障转移控制器
您可以使用命令行工具 yarn端口 rmadmin 将特定的 RM 转换为活动或待机状态,从一个 RM 故障转移到另一个获取 RM 的 HA 状态,并监视 RM 的运行状况
Note:启用或禁用 HA 将导致以前的监控历史记录变得不可用。
启用工作保留恢复有关详细信息,包括禁用工作保留恢复的说明请参阅 用於 yarn端口 组件的工作保留恢复。
Note: ResourceManager HA 不会影响 JobHistory Server (JHS)JHS 不保留任何状态,因此如果主机出现故障,您只需将其分配给新主机即可也可以通过执行下列操作来启用进程自动重启:
**配置手动故障转移并根据需要选择自动故障转移
在 yarn端口-site.xml 中配置以下属性(如下所示),无论您是配置手动还是自动故障转移它们足以配置手动故障转移。您需要为自动故障转移配置其他属性
特定于群集,例如 rm1,rm2 |
RM 重启或故障转移时启用作业恢复 |
用于 Zookeeper 状态存储的根节点的 ACL。此处设置的 ACL 应允許两个 ResourceManager 进行读取、写入和管理拥有独占访问权限以创建和删除。如果未指定将根据通过 yarn端口.resourcemanager.zk-acl 指定的 ACL,自动生成根节点 ACL但这会在安全設置中留下安全漏洞 |
在 yarn端口-site.xml 中配置以下额外属性,以配置自动故障转移
以下是展示这些已配置属性的示例 yarn端口-site.xml,包括 RM 和 NM 的工作保留恢复: