http://hadoop.apache.org/docs/r2.9.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html

背景

在Hadoop 2.0.0以前,在一个HDFS集群中NameNode存在单点故障。每个集群中只有一个NameNode,如果这个机器不可用的话,那么整个集群将不可用,直到这个机器被重启或者其它的机器来替代它。这就意味着:

  • 万一NameNode机器宕机了,那么整个集群不可用
  • NameNode机器上的软件或者硬件升级的时候,集群不得不停止运行

HDFS HA在每个集群中运行两个NameNode,一个是Active的,一个Passive的,作为热备。

架构

在典型的HA集群中,两个分开的机器均被配置为NameNode。在任意时刻,只有一个NameNode处于活动状态,另一个处于备用状态。处于活动状态的NameNode负责处理集群中所有客户端操作,此时处于备用状态的NameNode只是扮演者slave的角色。这个备用的NameNode维护足够的状态,以防快速容灾。

备用NameNode为了保持和活动NameNode的状态同步,这两个节点用一组单独的后台进程进行通信,这个守护进程被叫做“JournalNodes”(简称JNs)。当处于活动状态的NameNode做了任何修改以后,它将修改的日志传给大部分JNs。备用的NameNode从JNs中读取这种修改,并且会把这种改变写到EditLog中。因为备用NameNode看到这些编辑,所有它将这种改变应用到自己的namespace中。

要想保住HA集群正确的操作,至关重要的一点是,同一时间集群中只能有一个NameNode处于活动状态。为了保证这一点,JournalNodes只允许同一时间只有一个NameNode可以写。

硬件资源

为了部署一个HA集群,你需要准备下列资源:

  • NameNode machines:运行活动的和备用的NameNode的机器的硬件配置应该是相等的
  • JournalNode machines:必须至少3个JournalNode,因为Edit Log必须被写到大多数JNs上。也就是说,可以容忍单个机器失败。你也可以运行3个以上的JournalNode,但是为了能够增加系统承受失败的数量,你应该运行奇数个JNs(比如:3,5,7等等)。当运行的JournalNode数量是N的时候,系统最多可以容忍(N - 1)/ 2个失败,并且正常服务。

其它参考

http://blog.csdn.net/strongerbit/article/details/7013221/

HDFS High Availability Using the Quorum Journal Manager的更多相关文章

  1. [HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager

    HDFS High Availability Using the Quorum Journal Manager HDFS High Availability Using the Quorum Jour ...

  2. Dream------Hadoop--Hadoop HA QJM (Quorum Journal Manager)

    In a typical HA cluster, two separate machines are configured as NameNodes. At any point in time, ex ...

  3. Configuring HDFS High Availability

    Configuring HDFS High Availability 原文请訪问 http://blog.csdn.net/ashic/article/details/47024617,突袭新闻小灵儿 ...

  4. HDFS High Availability(HA)高可用配置

    高可用性(英语:high availability,缩写为 HA) IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度.是进行系统设计时的准则之一. 高可用性系统意味着系统服务可以更长时间 ...

  5. HDFS之Qurom Journal Manager(QJM)实现机制分析

    前言 1.1背景 自从hadoop2版本开始,社区引入了NameNode高可用方案.NameNode主从节点间需要同步操作日志来达到主从节点元数据一致.最初业界均通过NFS来实现日志同步,大家之所以选 ...

  6. HDFS Federation与HDFS High Availability详解

    HDFS Federation NameNode在内存中保存文件系统中每个文件和每个数据块的引用关系,这意味着对于一个拥有大量文件的超大集群来说,内存将成为限制系统横向扩展的瓶颈.在2.0发行版本系列 ...

  7. 构建高可靠hadoop集群之3- Quorum Journal Manager

    在正式环境中,搭建高可靠(ha)的系统是必须的. 例如oralce的rac,apache集群,windows服务器集群 本文不再赘言ha的重要性. 本文主要是对 http://hadoop.apach ...

  8. 分布式系统理论之Quorum机制

    一,Quorum机制介绍 在分布式系统中有个CAP理论,对于P(分区容忍性)而言,是实际存在 从而无法避免的.因为,分布系统中的处理不是在本机,而是网络中的许多机器相互通信,故网络分区.网络通信故障问 ...

  9. hadoop2.x HDFS HA linux环境搭建

    HDFS High Availability Using the Quorum Journal Manager 准备3台机器可以更多   NN  DN  ZK  ZKFC  JN  RM  DM  n ...

随机推荐

  1. 》》初识移动端--rem

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta na ...

  2. 关于hash和ico的一些关联

    最近測试提出一个bug.说某几个页面中的ico不显示,于是针对此问题排查原因. 首先,确保页面中的link已引入favicon.ico. 经查看,发现是js中的location.hash导致了ico不 ...

  3. 腾讯云数据库团队:MySQL语句复制(SBR)的缺陷列举

    作者介绍: 赵伟 腾讯云TDSQL数据库开发者 MySQL (这里的MySQL是指广义的mysql,包括oracle,mysql,percona,mariadb等)的Statement Based R ...

  4. 支持国内版Office 365的PowerShell模块现已发布

    作者:陈希章 发表于2017年5月12日 上一篇文章我详细介绍了如何在PowerShell中访问到Office 365的Graph API,在文章结尾处我留了一个问题,希望有朋友可以根据那个思路,尝试 ...

  5. ViewPager+Fragment 懒加载

    转载于: 作者:尹star链接:http://www.jianshu.com/p/c5d29a0c3f4c來源:简书   ViewPager+Fragment的模式再常见不过了,以国民应用微信为例,假 ...

  6. Jquery 改变样式

    Jquery简单的操作 Jquery 是一个非常好用JS库,有很多的特殊的操作,为了方便,我们都可以引入Jquery. <script src="dist/js/vendor/jque ...

  7. Linux主机SSH免密设置解析

    为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被 ...

  8. HTML基础教程-简介

    关于html5笔记前言 之前有在W3school学习过html5以及javascript.为了和大家一块学习,为了回顾这些遗忘的基础,现在我把之前自己整理的笔记共享给大家.希望大家共同进步. HTML ...

  9. 结构体struct sockaddr_in, struct sockaddr,struct in_addr

    一.结构体 struct sockaddr_in,  struct sockaddr,  struct in_addr struct sockaddr_in,  struct sockaddr,str ...

  10. mac下配置caffe

    Step1:安装homebrew 如果电脑上有,暂时不装.但是在step2(或者其他需要brew的情况)加完sudo之后如果仍然报错,就需要重新安装homebrew.在终端里输入如下命令: ruby  ...