HDFS2.0之HA

主备NameNode:
  1、主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换;
  2、主NameNode的信息发生变化后,会将信息写到共享数据存储系统中让备NameNode合并到自己的内存中;
  3、所有DataNode同时向两个NameNode发送心跳信息(块信息);

两种切换方式:
  1、手动切换:通过命令实现主备之间的切换,可以用于HDFS升级等场合;
  2、自动切换:基于Zookeeper实现;
    Zookeeper Failover Controller:向Zookeeper注册NameNode并监控NameNode健康状态,当NM挂掉后,ZKFC为NameNode竞争锁,获得锁的NameNode变成active;

多种共享数据存储系统可供选择
  1、NFS
  2、多个Journal Node构成集群(推荐)
    基本原理,数据同时写入所有的JN,多数写入成功,则认为写成功;
    一般配置奇数个JN,JN越多,容错性越好;比如有3个JN,只要两个写成功,则数据写成功,最多允许一个JN挂掉;
  3、Bookeeper

相对于hadoop1.x中多了备NameNodeJournalNode(存储共享数据)ZKFC&ZK(主备NN切换)

HDFS2.0之Federation

多个NN同时对外提供服务,每个NN分管一部分目录,多个NN共享底层DN存储;
此时每个NN都还是存在单点故障问题的,故还需要给Federation节点配置一个备用NN;
所有整个HADOOP2集群中可能存在的NN有:多个NN以及每个NN对应的备NN

带来的好处:单个NN内存和并发压力减小,NN彼此隔离,互不影响

常见应用方法:
  为不同业务创建不同NN,防止相互影响;(一个NN给开发用,一个NN测试用)
  为不同需求创建不同NN,比如测试用的NN,生产用的NN;

HDFS2.0之其他实现机制(与1.0版本基本一致)

1、文件放置策略
  文件被切成若干个block,存放在不同节点上;
  切分过程对用户透明;

2、文件容错策略
  基于副本的容错机制;
  流水线复制;

3、副本放置策略
  一个节点(1个rack)+ 两个节点(另1个rack)

4、......

Hadoop2.0构成之HDFS2.0的更多相关文章

  1. HDFS2.0架构以及HA详解

    HDFS2.0概述 一背景,Hadoop1.0中HDFS和MapReduce在高可用,扩展性等方面存在问题    HDFS存在问题,1,NameNode单点故障,难以应用于在线场景.2,NameNod ...

  2. hadoop入门(2)——HDFS2.0应用场景、原理、基本架构及使用方法

    一.HDFS概述         优点:高容错性.适合批处理.适合大数据处理.流式文件访问:一次写入,多次读取.         缺点:不适合低延迟数据访问.不适合小文件存取(受限于NameNode) ...

  3. Hadoop2.7.5+Hbase1.4.0完全分布式

    Hadoop2.7.5+Hbase1.4.0完全分布式一.在介绍完全分布式之前先给初学者推荐两本书:<Hbase权威指南>偏理论<Hbase实战>实战多一些 二.在安装完全分布 ...

  4. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装

    hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装 一.依赖文件安装 1.1 JDK 参见博文:http://www.cnblogs.com/liugh ...

  5. hadoop-2.6.0.tar.gz + hive-1.0.0.tar.gz + pig-0.15.0.tar.gz的安装

    这里,为什么选择用hadoop-2.6.0.tar.gz  +   hive-1.0.0.tar.gz是为了搭配兼容. hadoop-2.6.0.tar.gz  +   hive-1.0.0.tar. ...

  6. Hbase 0.96 比 hbase 0.94的改变

    转载:http://blog.csdn.net/hxpjava1/article/details/20043703 环境: hadoop:hadoop-2.2.0 hbase:hbase-0.96.0 ...

  7. Flume-1.4.0和Hbase-0.96.0整合

    在使用Flume的时候,请确保你电脑里面已经搭建好Hadoop.Hbase.Zookeeper以及Flume.本文将以最新版的Hadoop-2.2.0.Hbase-0.96.0.Zookeeper-3 ...

  8. js正则表达式校验非负浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [转]IIS6.0迁移至IIS7.0

    原文地址:http://www.splaybow.com/post/iis-6.0-7.0.html 公司的项目需要迁移到IIS7的目标机器中 在此做记录 原来server 2003系统 迁到2008 ...

随机推荐

  1. Dockerfile构建mysql数据库

    dockerfile文件: FROM centos:centos6  MAINTAINER admin "admin@topsec.com.cn"    RUN yum insta ...

  2. Vue 2.0 学习路线

    「 Vue很难学吗 」 对于我这种从0.x版本就开始体验 vuejs 的人来说,当然不算难,那时候没各种脚手架和复杂搭配,仅仅是一个mvvm的解决方案库而已,解决了jq带来的繁琐操作dom痛点,所以就 ...

  3. python海龟绘图

    最近学了python,看了几本书之后,才明白python的强大,python是一种解释型的语言,即每写一行程序就执行一行. 而且在科学计算方面,处理的能力特别的方便. 比如python中的字典dict ...

  4. 任务02——安装 Intellj IDEA,编写一个简易四则运算小程序,并将代码提交到 GitHub

    github地址:https://github.com/ErhuoHome/First.git 安装jdk与intellij idea没有太大问题,以前安装过eclipse 在程序方面,由于对真分数的 ...

  5. Unity插件-ShareSDK使用指南

    Unity插件ShareSDK使用教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Summariz ...

  6. MVC的好处 演示

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. ppt标题排版

  8. MySQL账号安全设置

    ======================================================================== 推荐账号安全设置 在数据库服务器上严格控制操作系统的账 ...

  9. hasura graphql 集成pipelinedb测试

    实际上因为pipelinedb 是原生支持pg的,所以应该不存在太大的问题,以下为测试 使用doker-compose 运行 配置 docker-compose 文件 version: '3.6' s ...

  10. zeroMQ 学习

    zeroMQ 是一个高性能的分布式设计的消息队列,网上有人进行过性能的比较,非常厉害,并且很大约40多种语言的API 可以调用,真实很不错的. 而且有一点就是使用简单,不需要服务器,对于使用C/C++ ...