H03-HDFS介绍

  1. HDFS(Hadoop Distributed File System):Hadoop分布式文件系统。是根据google发表的论文翻版的,论文为GFS(Google File System)Google 文件系统。

  2. HDFS特点
    保存多副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。
    运行在廉价的机器上。
    适合大数据的处理。HDFS默认会将文件分割成block,128M为1个block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中(namenode)。如果小文件太多,那内存的负担会很重。
    在这里插入图片描述

  3. HDFS也是按照Master和Slave的结构,分NameNode、SecondaryNameNode、DataNode这几个角色。

  4. NameNode:是Master节点,是管理者。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
    NameNode保存的metadata包括:文件ownership和permission、文件包含的block信息
    Block保存在那些DataNode节点上(这部分数据并非保存在NameNode磁盘上的,它是在DataNode启动时上报给NameNode的,NameNode接收到之后将这些信息保存在内存中)
    NameNode的metadata信息在NameNode启动后加载到内存中
    Metadata存储到磁盘上的文件名称为fsimage
    Block的位置信息不会保存在fsimage中
    Edits文件记录了客户端操作fsimage的日志,对文件的增删改等
    用户对fsimage的操作不会直接更新到fsimage中去,而是记录在edits中

  5. SecondaryNameNode:分担namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode
    合并fsimage和fsedits文件,然后发送并替换NameNode的fsimage文件,同时自己留下一个副本。这个副本可供NameNode毁灭之后的部分文件恢复
    可以通过配置fs.checkpoint.period修改合并间隔时间,默认1小时
    也可以通过配置edits日志文件的大小,fs.checkpoint.size规定edits文件的最大值,来让SecondaryNameNode来知道什么时候该进行合并操作了。默认是64M

  6. 合并过程如下
    在这里插入图片描述

  7. DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作

  8. 热备份:b是a的热备份,如果a坏掉。那么b马上运行代替a的工作

  9. 冷备份:b是a的冷备份,如果a坏掉。那么b不能马上代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失

  10. fsimage:元数据镜像文件(文件系统的目录数)

  11. edits:元数据的操作日志(针对文件系统做的修改操作记录)

  12. NameNode内存中存储的是 fsimage+edits

  13. SecondaryNameNode负责定时默认1小时,从NameNode上获取fsimage和edits来进行合并,然后在发送给NameNode。减少NameNode工作量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值