Hadoop入门——元数据管理机制

1.HDFS架构

包含NameNode、DataNode、Secondary NameNode

(1)NameNode

    是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
    文件包括:
    fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息;
    edits:操作日志文件;

    fstime:保存最近一次checkpoint的时间。

    NameNode工作特点:Namenode始终在内存中保存metedata,用于处理“读请求”。到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回。Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。Secondary namenode就是用来合并fsimage和edits文件来更新NameNode的metedata的。

(2)DataNode

    一个数据块在Datanode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。文件切分成块,(默认大小128M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)。

(3)Secondary NameNode

    Secondary NameNode是HA的一个解决方案。

    执行过程:从NameNode上下载元数据信息(fsimage,edits),然后把二者合并,生成新的fsimage,在本地保存,并将其推送到NameNode,替换旧的fsimage.

2.整体工作流程

(1)客户端申请上传文件,查询NameNode中维护的元数据;

(2)从NameNode返回分配的DataNode;

(3)将分块后的文件Block块存到相应的DataNode;

(4)客户端将每个Block写一份副本到对应DataNode,再由DataNode向其他DataNode进行拷贝,拷贝不由客户端处理。如果拷贝失败则重新找DataNode接受失败副本。

3.元数据的管理

(1)客户端上传文件时,向NameNode发送请求;

(2)NameNode首先往Edits log中记录元数据的操作日志;

(3)返回分配的DataNode;

(4)将相应的文件块传给对应的DataNode;

(5)传送完成后,将成功信息返回给NameNode;

(6)将Edits log中的信息追加到内存中,即NameNode在内存中写入本次操作的新产生的元数据信息;

(7)每当Edit log写满时,需要将这一段时间的新元数据刷新到fsimage中。

4.Edits log和fsimage合并

(1)通知Secondary NameNode进行CheckPoint操作;

(2)NameNode停止王Edits log中写数据,创建一个新的Edits log.new用于记录这段时间写入的数据;

(3)将Edit log和fsimage下载到Secondary NameNode中,由于第(2)步操作,此时两个文件处于静止状态;

(4)在Secondary NameNode中将Edit log和fsimage进行合并,生成新的元数据镜像文件fsimage.checkpoint;

(5)将fsimage.checkpoint上传到NameNode,替换原来的fsimage,再删除原来的Edits log,并将Edits log.new重命名为Edits log,此时NameNode内部结构与合并前一致。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值