HDFS High Availability Using the Quorum Journal Manager
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的更多相关文章
- [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 ...
- 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 ...
- Configuring HDFS High Availability
Configuring HDFS High Availability 原文请訪问 http://blog.csdn.net/ashic/article/details/47024617,突袭新闻小灵儿 ...
- HDFS High Availability(HA)高可用配置
高可用性(英语:high availability,缩写为 HA) IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度.是进行系统设计时的准则之一. 高可用性系统意味着系统服务可以更长时间 ...
- HDFS之Qurom Journal Manager(QJM)实现机制分析
前言 1.1背景 自从hadoop2版本开始,社区引入了NameNode高可用方案.NameNode主从节点间需要同步操作日志来达到主从节点元数据一致.最初业界均通过NFS来实现日志同步,大家之所以选 ...
- HDFS Federation与HDFS High Availability详解
HDFS Federation NameNode在内存中保存文件系统中每个文件和每个数据块的引用关系,这意味着对于一个拥有大量文件的超大集群来说,内存将成为限制系统横向扩展的瓶颈.在2.0发行版本系列 ...
- 构建高可靠hadoop集群之3- Quorum Journal Manager
在正式环境中,搭建高可靠(ha)的系统是必须的. 例如oralce的rac,apache集群,windows服务器集群 本文不再赘言ha的重要性. 本文主要是对 http://hadoop.apach ...
- 分布式系统理论之Quorum机制
一,Quorum机制介绍 在分布式系统中有个CAP理论,对于P(分区容忍性)而言,是实际存在 从而无法避免的.因为,分布系统中的处理不是在本机,而是网络中的许多机器相互通信,故网络分区.网络通信故障问 ...
- hadoop2.x HDFS HA linux环境搭建
HDFS High Availability Using the Quorum Journal Manager 准备3台机器可以更多 NN DN ZK ZKFC JN RM DM n ...
随机推荐
- 》》vue
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Scheme -- Hierarchical Structures
Question: produce a deep-reverse procedure that takes a list as argument and returns as its value t ...
- 体验CSDN-Markdown
文件夹 文件夹 文本格式化练习 一号标题 1一号标题 二号标题 1 11 2 列表的应用 链接 图片 脚注 表格 序列图 流程图 文本格式化练习: 斜体 斜体的文字 使用鼠标,变成斜体文字 使用键盘C ...
- 2015级C++第4周项目 函数
[项目1-求最大公约数] 參考解答 (1)输入两个数.并求出其最大公约数 #include <iostream> using namespace std; //自己定义函数的原型(即函数声 ...
- node.js之路由,中间件,ge请求和post请求的参数
一.路由 1.什么是路由 服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤 2.实现路由的方法 2.1.get请求访问网址时,做什么事 1 app.get(" ...
- 最受Java开发者青睐的Java应用服务器 —— Tomcat
Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选.今天,就一起来了解下 Tomcat. Java 应用服务器 Tomc ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
- 调用接口http封装
public static String httpHandler(String URL,String xml){ try { URL url=new URL(URL); URLConnection c ...
- Not++规范格式(格式化)
Notepad++功能比Windows中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码.Notepad++ 有语法高亮度显示和语法折叠功能,并且支 ...
- 「mysql优化专题」90%程序员没听过的存储过程和存储函数教学(7)
一.MYSQL储存过程简介(技术文): 储存过程是一个可编程的函数,它在数据库中创建并保存.它可以有SQL语句和一些特殊的控制结构组成.当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时 ...