关于hadoop-2.6.0 HA模式下HDFS自动failover切换的一点经验
2015-04-24 19:52
381 查看
以我的经验,杀死原来ACTIVE namenode上的NameNode进程,会成功自动切换;而采用down掉网卡(ifdown <dev>命令)的方法,不一定能够成功切换。根据我的经验这主要是与fencing方法的设置有关。Hadoop提供的两种fencing方法是sshfence和shell,其中sshfence要求ssh登录到目标结点杀死NameNode进程,因此当仅仅配置fencing方法是sshfence之后,当原active namenode的网卡down掉之后,原standby namenode的zkfc实际上已经不能ssh到原active
namenode上杀死NameNode进程,因此该fencing不能成功执行,因此无法继续切换自己的状态成active,只能不断尝试。这可以通过tail -f命令观察原standby namenode的zkfc日志知道这个问题。查看这个日志,应该可以包括下面消息在内的信息:
“INFO org.apache.hadoop.ha.ZKFailoverController: Should fence: NameNode at ...”。
sshfence失败导致不能切换之后,如果这时候恢复网卡连通性(ifup <dev>),那么切换过程又可以继续进行下去,仍然完成将原来active/standby结点状态对调的切换。
修改dfs.ha.fencing.methods的配置,增加shell(/bin/true)方法或仅仅配置这个方法,可以使得网卡中断后切换成功进行。注意,我注意到dfs.ha.fencing.methods这个属性和dfs.ha.fencing.ssh.private-key-files属性都在core-default.xml找到,所以我将配置移到了core-site.xml中(不过感觉没有影响)。
成功切换之后,也有一种情况下需要注意一下,就是当网卡恢复连通后,原来active namenode的NameNode进程反而因为恢复连通后导致的写edits log的问题退出进程(可以在该结点的namenode日志看到“FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: flush failed for required journal”的信息)。因此可能还有手工重新启动一下namenode进程(启动后是standby状态)。
大致的图示如下:
namenode上杀死NameNode进程,因此该fencing不能成功执行,因此无法继续切换自己的状态成active,只能不断尝试。这可以通过tail -f命令观察原standby namenode的zkfc日志知道这个问题。查看这个日志,应该可以包括下面消息在内的信息:
“INFO org.apache.hadoop.ha.ZKFailoverController: Should fence: NameNode at ...”。
sshfence失败导致不能切换之后,如果这时候恢复网卡连通性(ifup <dev>),那么切换过程又可以继续进行下去,仍然完成将原来active/standby结点状态对调的切换。
修改dfs.ha.fencing.methods的配置,增加shell(/bin/true)方法或仅仅配置这个方法,可以使得网卡中断后切换成功进行。注意,我注意到dfs.ha.fencing.methods这个属性和dfs.ha.fencing.ssh.private-key-files属性都在core-default.xml找到,所以我将配置移到了core-site.xml中(不过感觉没有影响)。
成功切换之后,也有一种情况下需要注意一下,就是当网卡恢复连通后,原来active namenode的NameNode进程反而因为恢复连通后导致的写edits log的问题退出进程(可以在该结点的namenode日志看到“FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: flush failed for required journal”的信息)。因此可能还有手工重新启动一下namenode进程(启动后是standby状态)。
大致的图示如下:
相关文章推荐
- HDFS-HA:Hadoop-Cloudera-cdh4版本的HDFS自动Failover(zk-based-failover)分析
- HDFS集群搭建,高可用双机热备模式(HA)自动切换,hdfs+zookeeper+journalnode,步骤分步原理详解(适合初学者)
- 利用QJM实现HDFS自动主从切换(HA Automatic Failover)源码详析
- hadoop-2.6.0+zookeper-3.4.6之HA模式两个namenode不同状态active和standby的切换
- Hadoop-2.6.0下HDFS的集群HA的主备自动切换搭建
- Hadoop 2.7.2 HA 自动切换高可用集群配置详解
- hadoop2.6.4 搭建HA集群之后不能自动切换namenode
- hadoop ha配置后一个namenode不能自动failover,相当于没有配置ha
- Hadoop 2.2.0 HDFS HA(Automatic Failover)搭建
- hadoop HA中active节点挂掉standby节点不自动切换问题
- hadoop2.0 HA的主备自动切换
- (12)Hadoop 2.6.1 集群部署---自动切换HA
- NameNode HA自动Failover设计文档(HDFS-3042/HDFS-2185:Automatic failover support for NN HA)
- Hadoop2.2.0 自动切换HA环境搭建
- 搭建 hadoop2 自动切换HA 集群
- hadoop搭建HA集群之后不能自动切换namenode
- HDFS-HA的配置-----自动Failover
- 关于自动编译的一点经验
- Centos 6.5 下hadoop2.5.2的HA集群原理讲解以及详细配置(自动切换)
- hadoop 2.x之HDFS HA讲解之十一测试failover故障转移和隔离、使用sshfence隔离的配置ssh无密钥登陆