网站优化柳州,一级a做爰片免费网站国语版的,华文细黑做网站有版权吗,wordpress仿制模块秒懂HA HA概述HDFS-HA工作机制工作要点元数据同步参数配置手动故障转移自动故障转移工作机制相关命令 YARN-HA参数配置自动故障转移机制相关命令 附录Zookeeper详解 HA概述 H(high)A(avilable)#xff1a; 高可用#xff0c;意味着必须有容错机制#xff0c;不能因为集群故障… 秒懂HA HA概述HDFS-HA工作机制工作要点元数据同步参数配置手动故障转移自动故障转移工作机制相关命令 YARN-HA参数配置自动故障转移机制相关命令 附录Zookeeper详解 HA概述 H(high)A(avilable) 高可用意味着必须有容错机制不能因为集群故障导致不可用 实现高可用最关键的策略是消除单点故障SPOF。HA严格来说应该分成各个组件的HA机制HDFS的HA和YARN的HA实现hadoop的HA必须保证在NN和RM故障时采取容错机制可以让集群继续使用
HDFS-HA
工作机制 HDFS HA功能通过配置Active/Standby两个NameNode实现在集群中对NameNode的热备来解决问题通过双NameNode消除单点故障。 使用active状态来标记主节点使用standby状态标记备用节点
工作要点 元数据管理方式需要改变 内存中各自保存一份元数据Edits日志只有Active状态的NameNode节点可以做写操作两个NameNode都可以读取Edits共享的Edits放在一个共享存储中管理需要一个状态管理功能模块 实现了一个zkfc进程zookeeper failover control常驻在每一个namenode所在的节点每一个zkfc负责监控自己所在NameNode节点利用ZK进行状态标识当需要进行状态切换时由zkfc来负责切换切换时需要防止脑裂brain split现象的发生脑裂(brain-split) 运行过程中出现两个 namenode 同时服务于整个集群这种情况称之为脑裂 必须保证两个NameNode之间能够ssh无密码登录 隔离Fence即同一时刻仅仅有一个NameNode对外提供服务
元数据同步 集群启动后standby NameNode和active NameNode同时与JournalNodesJNS进程保持通信每次active NameNode写 EditLog 的时候除了向本地磁盘写入 EditLog 之外也会并行地向JournalNode集群之中的每一个JournalNode发送写请求只要大多数 (majority) 的JournalNode节点返回成功就认为向JournalNode集群写入 EditLog 成功standby NameNode周期性的从JNS中获取 EditLog 并应用到本地namespace在failover发生时standby节点会在转变为active之前从JNS中读取并处理所有editlog以此保持与active NameNode的状态完全同步另一方面为了failover后standy节点快速提供服务所有的DateNode节点同时向主备两个NameNode报告block信息 journode是基于paxos协议实现的
参数配置
参考实例: 高可用集群hdfs-site.xml配置_CSDN
手动故障转移
在原active的namenode节点上执行下面命令强制转换nn2为active节点
hdfs haadmin -transitionToActive --forceactive nn2自动故障转移工作机制 ZooKeeper会话管理每个运行的NameNode主机也运行了一个ZKFC进程ZKFC进程会在NameNode上实例一个Zookeeper客户端保持一个在ZooKeeper中打开的会话现役NameNode选择会话打开后ZKFC会将节点信息写入Zookeeper谁先在Zookeeper中写入成功且ZKFC发现没有其它的节点当前持有znode锁它将为自己获取该锁如果成功则它已经赢得了选择并负责运行故障转移进程以使它的本地NameNode为Active如果本地NameNode处于active状态ZKFC也保持一个特殊的znode锁该锁使用了ZooKeeper对短暂节点的支持如果会话终止锁节点将自动删除健康监测ZKFC使用一个健康检查命令定期地ping与之在相同主机的NameNode只要该NameNode及时地回复健康状态ZKFC认为该节点是健康的。如果该节点崩溃健康监测器标识该节点为非健康的故障检测集群中的每个NameNode在ZooKeeper中维护了一个持久会话如果机器崩溃ZKFC会释放对Zookeeper节点的所有权ZooKeeper中的会话将终止因为节点是临时节点会话终止临时节点也就消失了隔离目前现役NameNode崩溃另一个节点可能从ZooKeeper获得特殊的排外锁以表明它应该成为现役NameNode在成为现役之前需要先把假死的NameNode进程杀掉避免出现脑裂问题NameNode的standby节点会重新在Zookeeper上写入新的节点并将自己提升为active
相关命令
hdfs查看nn状态命令
hdfs haadmin -getAllServiceState hdfs切换为active命令
hdfs haadmin -transitionToActive --forcemanual Namenode Idhdfs切换为standby命令
hdfs haadmin -transitionToStandby --forcemanual Namenode IdYARN-HA
参数配置
参考实例: 高可用集群yarn-site.xml配置_CSDN 自动故障转移机制 ResourceManager中基于zookeeper的ActiveStandbyElector组件来选举哪个RM作为activeRM。 active RM关闭或故障时自动选举standby状态的RM作为新的active RM接管工作 与HDFS的HA不同的是YARN的HA方案不需要单独的ZKFC程序 基于zk的ActiveStandbyElector作为RM内部组件进行故障检测和active选举
相关命令
yarn查看rm状态命令
yarn rmadmin -getAllServiceStateyarn切换为active状态
yarn rmadmin -transitionToActive --forcemanual rm idyarn切换为standby状态
yarn rmadmin -transitionToStandby --forcemanual rm id附录
Zookeeper详解
参考链接 zookeeper详解_CSDN