学习笔记-HDFS1.0/2.0

HDFS1.0
HDFS 由三个组件构成,完全是两种不同的进程(NameNode,DataNode):
  1. NameNode  只有一个,在一个集群上
  2. SecondaryNmaeNode
  3. DataNode 在集群上有很多,但是一个机器只有一个
1,2属于Master 上,3属于Slave上也叫做work上

HDFS(存储)上的各个节点说明:
  1. Master 主节点,负责分配用户给的任务,相当于公司的老板
  2. Slave 从节点,负责处理Master分配的任务,相当于公司的员工
  3. Client 客户端 ,负责给Master分配任务, 相当于用户出钱给公司,给公司的Master分配任务,也可以直接和Slave通信


DataNode 最小的数据单元是block ,block默认是64M,可以通过配置文件修改

HDFS 里面这个数据通常是顺序读的,原因就是吞吐能力

NameNode:
  1. NameNode 管理文件系统命名空间
  2. 存储元数据
    1. 文件名目录名以及之间的关系
    2. 文件目录所有者权限
    3. 每个文件块的名称及文件由哪些组成
  3. 元数据保存在内存中,在hdfs系统的运行期间,会定期保存元数据到fsimage ,运行期间会对元信息的操作都保存在内存中并持久化到edits,并且定期edits和fsimange文件会被SecondaryNameNode周期性合并
  4. 元数据中有两种很重要的数据,也可以认为是映射数据
    1. 文件名  --》 block
    2. block --》 dataNode
  5. NameNode不会存储用户数据或执行MapReduce任务
 通过以上第四点就可以说明client 找master 就知道该找哪个dataNode

DataNode:
  1. 负责存储数据块,负责为系统客户端提供数据块的读写服务
  2. 根据NameNode指示,执行任务
  3. 心跳机制,定期(3s)报告文件块列表信息
  4. DataNode之间通信,块的副本处理

  
两个文件:
  • fsimage - 它是在NameNode 启动时对整个文件系统的快照
  • 编辑日志 - 它是在NameNode 启动后,对文件系统的改动序
SecondaryNameNode:
  1. 用来保存HDFS元数据信息,比如命名空间信息,块信息,由于这些都是在内存中,SecondNameNode为了考虑持久化到磁盘
  2. 他所做的是在文件系统设置一个检查点帮助的NameNode更好工作
  3. 定时到NameNode去获取编辑日志,并更新到fsimage,一旦有了新的fsimage文件,将其拷回NameNode


数据完整性校验,
  1. HDFS会对写入的数据计算校验和,并在读取数据时验证校验和,通过CRC32的循环冗余校验码
  2. 数据块检测程序DataBlockScanner在DataNode节点上开启一个后台线程,来定期验证存储在它上的所有块,这是防止物理介质出现损失情况而造成数据损坏

HDFS特点:
  1. 存储并管理PB极大数据
  2. 处理非结构化数据
  3. 注重数据处理的吞吐量
  4. 应用模式:一次写多次读存取模式
HDFS副本管理策略:机架感知策略

HDFS和MapReduce本地模式:


HDFS2.0    
NameNode HA
  1.  HDFS高可用性将通过在一个集群中运行两个的NameNode(活性&备用)来解决
  2. 任何时间只有一台处于active另一个处于standby随时准备切换
QJM(Hadoop的提供的一个服务,保证的NameNode间的数据同步,借助ZK):
  1. 管理文件系统的命名空间
  2. 数据间的同步
QJM实现高可用(HA)的原因:
  1. 不需要额外配置恭喜那个存储(相对于NFS)
  2. 消除单点问题
  3. 可配置,使得系统更加鲁棒
  4. JN不会因为一台的延迟而影响整体的延迟,也不会因为JN的数量增多而影响
Active NameNode和Standby NameNode同步目录镜像树,需要依赖JournalNodes守护进程,完成数据一致性
要保证这两个之间数据完全一致就需要两个一致:一个是数据(通过数据管理部保证),一个是命名空间(通过JN(QJM起来的进程)来保证的),一个集群中,最少要运行3个JN系统,使得系统有一定的容错能力


FailoverController进程(ZKFC)主要是用来故障转移用的(active的NN突然挂掉了,切换到NN待机)
ZKFC是ZK集群的客户端,ZKFC用来监控NN的状态信息(zkfc在ZK上创建临时节点,与NN保持心跳)

一个命名空间对应一个块池(是同一个命名空间下的所有块集合)

NameNode Federation
    本质:将一部分文件迁移到其他NN上进行管理,只有元数据管理和存放被分隔开,但是真实数据存储还是共享
    优势:
  1. 命名空间横向扩展
  2. 性能提升
  3. 资源的隔离

应用:新的文件系统viewfs(视图文件系统)

HDFS快照:主要用来做数据备份,一个只读的基于时间点的文件系统拷贝,快照并不影响HDFS的正常操作,快照数据是当前数据减去修改的部分计算出来的,会存在snapshottable目录下,对目录进行设定,只记录了块列表和文件大小,不会复制文件

HDFS2.0缓存 - “集中式缓存,通过中央节点提前把目录加载进去
  1. 集中化缓存对于重复访问的文件很有用
  2. 明确的锁定可以阻止频繁使用的数据被从内存中清除
  3. 缓存可以缓存当前目录和文件,但是目录是非递归

Hadoop的ACL机制:和linux一致,在Hadoop2.4版本以后 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值