浅谈大数据之HDFS(2)

关于HDFS1.0的知识可以看看这篇文章

浅谈大数据之HDFS(1)

下面我们根据HDFS2.0的一些新特性,从HA(高可用)、Federatio(联邦)、快照、缓存、ACL(权限)等方面来聊聊

HA(高可用)

首先我们要知道HA,是为了解决什么问题呢?

这是为了解决单点故障的问题,虽然HDFS1.0中有SNN(SecondaryNameNode),但是并不可靠,在HDFS2.0中,使用两个NameNode,一个Active,另一个StandBy。我们先看一下流程图,再详细讲解

在这里插入图片描述
我们从下往上说

1.为了保证两个NameNode的数据一致性,DataNode要对两个NameNode同时发送心跳

2.ActiveNameNode承担所有与客户端的操作,读写删除等操作

3.StandByNameNode不做其他操作,与active保持一个通信关系,与active保持数据同步。如果active挂掉,standby要做好称为active的准备

4.JN:主要目的是让ActiveNN和StandByNN保持数据同步(下面我们再详细讲)

5.引入ZooKeeper的目的是为了协调分布式集群中各个节点工作有序运行,完成故障转移

对流程有一个大概的了解之后,我们再针对细节讲解一下

1.引入Zookeeper主要是为了协调运行和完成故障转移,那么具体是怎么做到的呢?
a)在HDFS2.0中,ZKFC(ZooKeeperFailoverController-故障转移控制)是一个进程,和NN部署在同一个机器上,ZKFC的目的是负责对自己管辖之内的NN进行健康检查,通俗说就是检查NN是否挂掉。

ZKFC会在Zookeeper上注册一个临时节点,目的用于监控NN,一旦NN挂掉,相对应的临时节点消失,接下来开始选主(申请锁)流程

b)引入Zookeeper也是为了避免分歧,在任何情况下,NameNode只有一个active状态,否则导致数据的丢失及其他不正确的结果。在任何时间,JNs只允许一个NN充当writer,在故障恢复期间,将要变成active状态的NN将取得writer的角色,并阻止另外一个NN继续处于active状态

2.JN(JournalNodes),我们思考一个问题,DataNode要对两个NN同时发送心跳,目的保证一致性,但是为什么还需要JN?
这是因为两者保证的数据类型不同,JN是文件–>block,DadaNode的心跳是block–>DN,数据丢失可以根据心跳恢复,无需JN保管。

JN通常配置成奇数个(2N+1),如果N个数据是一致的,那么数据就能确定下来,会去同步standby目录镜像树

JN有两种技术选择

一是NFS,采用网络挂载的方式,需要额外的磁盘空间

二是QJM(最低法定人数管理机制),它的原理是,用2n+1台机器存储edit log,每次写数据操作属于大多数(n+1)时候,返回成功,保证高可用,本质上也是一个小集群。使用QJM有以下好处

 a)不需要额外的磁盘空间

 b)无单点问题

 c)不会因为个别机器延迟,影响整体性能(大多数n+1的时候,返回成功),也不会因为JN的数据增多而影响(active数据变化会同步发送到JN上)

 d)通过简单的系统配置就可以实现

3.节点的部署情况

1)NN和JN通常不在一台机器上

2)FC和NN在同一台机器上

3)RM(Yarn中的资源管理器,相当于1.0中的jobtracker的部分功能)和NN在同一台机器

4)zookeeper通常是单独维护的一套独立集群

NameNode Federation(联邦)

在这里插入图片描述
集群中提供多个NameNode,每个NameNode负责管理一部分的DataNode,目的是减轻单一的NameNode压力,将一部分文件转移到其他NameNode上管理

本质上是将元数据原理(NN)和存储(DN)进行解耦,但是实际情况是:数据的存储仍然是共享的

联邦实现了NameNode的横向扩展,使得Hadoop集群的规模可以达到上万台,突破了单独的NN的限制,支持更多数据存储

HDFS快照

HDFS快照是一个只读的基于时间点的文件系统拷贝,本质上也会占用空间(仅仅记录了block列表和大小而已,并不涉及数据本身的复制),快照创建的过程非常快,瞬间完成,很高效。

HDFS快照的作用主要是数据备份,灾备,快速恢复

HDFS缓存

HDFS缓存是集中式的缓存(不局限于具体的机器CPU和操作系统层面上的优化),集中式的缓存管理对于重复访问的文件很有用,允许用户指定要缓存的HDFS路径,而且明确的锁定可以阻止频繁使用的数据被从内存中清除

ACL(权限控制)

目前HDFS的权限控制与Linux一致,包括用户、用户组、其他用户组三类权限,这种方式有很大局限性,通过以下这张图就能了解权限是怎么构成的了

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值