Hadoop-HDFS概述

HDFS(Hadoop Distributed File System)hadoop 分布式 文件系统

  • HDFS组成:

NameNode(nn):

1、用来存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。
2、维护文件系统的统一目录树
3、接受客户端的请求
4、监控和管理 DataNode

DataNode(dn):

1、在本地文件系统存储文件块数据,以及块数据的校验。
2、执行上传或者下载任务
3、 通过心跳(3s)向 NameNode 汇报自身状况
如果 NameNode 超过 10 min 没有收到汇报,就认为这个 DateNode 挂了
-Secondary NameNode(2nn):
1、用来监控HDFS状态的辅助后台程序,每个一段时间获取HDFS的元数据快照
2、定期合并 NameNode 的 fsimage 和 edits 文件,减少启动时间。
fsimage 是 hdfs 的目录树:记录了统一目录树中文件和节点的对应关系
3、 作为 NameNode 的冷备份
在 NameNode 数据丢失以后,
可以拷贝 SecondaryNameNode 的 fsimage.ckpt 给 NameNode,
恢复目录树到最后一次合并的状态,
丢失最后一次合并后执行的操作数据

这个操作需要重启集群,所以叫做冷备份

什么是Fsimage和edits

在 hdfs 中的创建、删除和上传等操作都需要修改 fsimage 文件
这些操作是频繁执行的,频繁执行 IO 操作比较消耗资源

所以 hdfs 启动的时候会 fsimage 读入内容,
后续的修改操作全部在内存执行,修改完成后不再覆盖本地内容

为了防止断电等意外情况导致数据丢失,
hdfs 会把每个操作记录在 edits 文件中,保存在硬盘上

重启 hdfs 的时候,会对 fsimage 执行 edits 中记录操作,得到重启前

的目录树

为了减少重启时对 fsimage 执行 edits 中记录操作消耗的时间,
需要定期(checkpointer)有 SecondaryNameNode 合并 fsimage 和 edits 文件

checkpointer:
1. 3600s
2. 当 edits 达到 64M 的时候

无论达到那个条件,都执行合并,合并以后两个条件都归零,重新计数

合并流程:
  1. SecondaryNameNode 从 NameNode 下载 fsimage 和 edits,合并为 fsimage.ckpt 文件
  2. NameNode 新建 edits.new 记录合并期间的操作
  3. SecondaryNameNode 发送合并后的 fsimage.ckpt 给 NameNode
  4. NameNode 重命名 fsimage.ckpt 为 fsimage,edits.new 为 edits

hdfs 对于文件是按 block(块) 进行存储的
每个文件会按照 block size(128M) 切分多个为多个 block 存储在 DataNode 上
对于每个 block 还会进行 replication 操作
replication:备份数,默认是 3,文件总共存 3 份

Ps : 这些东西都是当初学习大数据的时候,自己做的笔记。现在分享出来希望能给有需要的人带来帮助。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

散装程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值