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、......

最新文章

  1. js数组转json
  2. PHP中数组合并的两种方法及区别介绍
  3. The Ninth Hunan Collegiate Programming Contest (2013) Problem I
  4. 一些dos命令
  5. /Home/Tpl/Equipment/rangeIndex.html 里调用魔板
  6. sql server数据库主键自增一插入特定值
  7. bzoj 1188 : [HNOI2007]分裂游戏 sg函数
  8. JSCapture实现屏幕捕捉
  9. WinDbg分析Dump常用方法和命令
  10. Ubuntu18.04 下 VirtualBox or VMWare 虚拟化问题
  11. maven打包时出现 Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project……
  12. SPI、IIC、IIS、UART、CAN、SDIO、GPIO、USB总线协议
  13. kolla-ansible部署单节点OpenStack-Pike
  14. 首次启动Kafka报Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
  15. STM32.printf
  16. js ==与===区别(非严格相等与严格相等)
  17. AnyProxy对搜狐汽车app抓包
  18. C++复习11.函数的高级特性
  19. C++变量类型转换
  20. go chapter 2 - read file(yaml)

热门文章

  1. Ubuntu 搭建Ghost1.0博客系统
  2. Eclipse中SVN的安装步骤(两种)和使用方法
  3. ORA-10922 Temporary tablespace group is empty错误
  4. 会声会影X7安装不了,总是提示已经安装其他版本,怎么办
  5. Arpa’s obvious problem and Mehrdad’s terrible solution 思维
  6. Django的DateTimeField和DateField
  7. java泛型(一)、泛型的基本介绍和使用
  8. MySQL--限制用户使用资源
  9. prisma 集成 pipelinedb测试
  10. centos7.x网卡bond配置