namenode ha切换优化

一、背景

目前namenode使用了ha的部署模式,但系统会经常出现ha的自动切换(namenode节点其实正常)。经过调研发现可能的原因如下:

  1. HealthMonitor
    check本地namenode的rpc端口时超时,导致HealthMonitor认为namenode挂掉。
  2. zk上的session
    timeout,导致丢掉当前持有的active锁(temp节点),引起自动切换。

二、优化

下面的优化将针对1)和2)调整相应的超时参数,看是否起效。修改core-site.xml

    <!-- HealthMonitor check namenode 的超时设置,默认50000ms,改为5mins -->
    <property>
        <name>ha.health-monitor.rpc-timeout.ms</name>
        <value>300000</value>
    </property>
   <!-- zk failover的session 超时设置,默认5000ms,改为3mins -->
    <property>
        <name>ha.zookeeper.session-timeout.ms</name>
        <value>180000</value>
    </property>

三、操作影响

无,不需要重启hadoop,不会引起namenode切换

四、操作步骤

下面操作假设master1(active),master2(standby),只有按照该顺序操作,才能实现namenode不切换

1)登陆master2(standby),注释掉crontab中的restart-zkfc.sh任务
执行

sbin/hadoop-daemon.sh stop zkfc

2)登陆master1(active),注释掉crotab中的restart-zkfc.sh任务,执行

sbin/hadoop-daemon.sh stop zkfc

3)备份master1和master2的core-site.xml文件,将上述配置项加到master1和master2的core-site.xml配置文件中

4)登陆master1(active),执行

sbin/hadoop-daemon.sh start zkfc

5)登陆master2(standby),执行

sbin/hadoop-daemon.sh start zkfc

6)check
hadoop集群状态
7)重要!!!
登录master1和master2,恢复crontab中的restart-zkfc.sh任务
8)完成

注意事项

1)需要先注释掉机器上的crontab任务restart-zkfc.sh,否则该程序会自动拉起zkfc进程。导致namenode
active产生切换
2)任务完成后要恢复crontab中注释掉的restart-zkfc.sh任务

时间: 2024-12-28 01:09:42

namenode ha切换优化的相关文章

HDFS2.0 NameNode HA 切换失败后的恢复(元数据写坏)

在测试 HDFS2.0 的 NameNode HA 的时候,并发put 700M的文件,然后 Kill 主 NN :发现备 NN 切换后进程退出. 2014-09-03 11:34:27,221 FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream(mgr=QJM to [10.1

Hadoop 2.0 NameNode HA和Federation实践

参考链接:Hadoop 2.0 NameNode HA和Federation实践 Posted on 2012/12/10 一.背景 天云趋势在2012年下半年开始为某大型国有银行的历史交易数据备份及查询提供基于Hadoop的技术解决方案,由于行业的特殊性,客户对服务的可用性有着非常高的要求,而HDFS长久以来都被单点故障的问题所困扰,直到Apache Hadoop在2012年5月发布了2.0的alpha版本,其中MRv2还很不成熟,可HDFS的新功能已经基本可用,尤其是其中的的High Ava

Namenode HA原理详解

社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 原文见 http://xiguada.org/namenode-ha-principle/ 为什么要Namenode HA? 1.NameNode High Availability即高可用. 2.NameNode 很重要,挂掉会导致存储停止服务,无法进行数据的读写,基于此NameNode的计算(MR,Hive等)也无法完成. Namenode HA 如何实现,关

Hadoop 2.6.0 Namenode HA,ResourceManager HA

先启动所有的zookeeper zkServer.sh start 在所有节点上启动JournalNode: sbin/hadoop-daemon.sh start journalnode 格式化第一个NameNode bin/hdfs namenode –format 启动第一个的NameNode sbin/hadoop-daemon.sh start namenode 在第二个NameNode上同步元数据 bin/hdfs namenode -bootstrapStandby 启动第二个Na

Hadoop2之NameNode HA详解

在Hadoop1中NameNode存在一个单点故障问题,如果NameNode所在的机器发生故障,整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNode,但是它并不是NameNode的备份,它只是NameNode的一个助理,协助NameNode工作,SecorndaryNameNode会对fsimage和edits文件进行合并,并推送给NameNode,防止因edits文件过大,导致NameNode重启变慢),这是Hadoop1的不可靠实现. 在Hadoop2中这个问题得

Apache Hadoop集群安装(NameNode HA + SPARK + 机架感知)

1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.168.9.22 Secondary NameNode.JournalNode 3 dn-1 192.168.9.23 DataNode.JournalNode.zookeeper.ResourceManager.NodeManager 4 dn-2 192.168.9.24 DataNode.zook

Hadoop NameNode HA模式的搭建以及原理

搭建HA(高可用)模式的集群参见(http://blog.cheyo.net/92.html) 转自:http://www.it165.net/admin/html/201407/3465.html 社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 为什么要Namenode HA? 1. NameNode High Availability即高可用. 2. NameNode 很重要,挂掉会导致存储停止服务,无法进

Apache hadoop namenode ha和yarn ha ---HDFS高可用性

HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时间--当NameNode失效的时候,Secondary NN并无法立刻提供服务,Secondary NN甚至无法保证数据完整性--如果NN数据丢失的话,在上一次合并后的文件系统的改动会丢失NameNode扩展性问题:单NameNode元数据不可扩展,是整个HDFS集群的瓶颈 Hadoop HDFS高

Hadoop2 NameNode HA配置

Hadoop2 NameNode HA配置 Hadoop2 官方提供了两种NameNode HA的实现方式,分别基于QJM和NFS,这里以基于QJM的HDFS HA为例. 实验环境 系统版本:CentOS release 6.4 (Final) Hadoop版本:Apache Hadoop2.5.1 Hive版本:Hive 0.13.1 IP列表 IP Hostname NameNode DataNode RM NodeManager JournalNode 192.168.20.54 had1