前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop分布式文件系统HDFS

Hadoop分布式文件系统HDFS

作者头像
姜同学
发布2022-10-27 16:36:56
3510
发布2022-10-27 16:36:56
举报
文章被收录于专栏:姜同学姜同学

概述

  1. HDFS是hadoop提供的分布式存储的文件系统
  2. HDFS是典型的主从结构,一主(namenode)多从(datanode)
  3. HDFS的指令和linux指令相似(hadoop fs -xx)
  4. HDFS对文件进行存储之前,会将文件进行切块
  5. 文件大小如果超过128MB,则默认一块为128MB,未到128MB,则文件大小即为文件块大小
  6. 在HDFS中会自动对文件进行备份,默认一块备份三份

HDFS设计原理

HDFS中的三种角色:namenode(核心节点),datanode(数据节点),客户端

namenode

代码语言:javascript
复制
namenode在整个HDFS中类似于一种调节器的角色,所有的请求都要交由
namenode,然后namenode再分发给不同的datanode进行操作。

namenode上记录着HDFS中文件的元数据:
文件的大小
Block(文件块)的大小
BlockId
文件的存储路径
文件的权限
文件副本个数(默认为三个)
BlockId与datanode的映射关系,一个文件切为多少块
一个BlockId就对应多少个datanode.

1.元数据为了查询效率以及崩溃恢复将文件在内存和磁盘中
各存储了一份。
2.元数据在磁盘中的存储位置由core-site.xml中的hadoop.tmp.dir
属性决定
3.在hadoop的元文件存储路径/dfs/name/current/下记录着两种
不同的元数据存储文件,edits和fsimage.
4.edits中记录着所有的写操作
5.fsimage(映像文件中记录这原数据),内存中的元数据文件和映像文件
中记录着的元数据并不是同步的。
6.在客户端执行写操作的时候,namenode接收到请求验证权限成功之
后,会将写操作指令先记录到edits_inprogress文件中,记录成功之后会对内存中
的元数据进行修改,元数据修改完之后会给客户端发送一个ack信号
但是此时的fsimage映像文件是不发生改变的。
7.edits文件的滚动以及fsimage文件的更新
  a.当edits文件超过指定大小(默认64MB,可以通过fs.checkpoint.size来
调节)之后会将操作更新到fsimage中
  b.edits文件与上次滚动时间超过3600s(可以通过fs.checkpoint.period来调节)
之后,会进行一次滚动并更新fsiamge文件
  c.hadoop重启之后,edits会自动进行一次滚动并更新fsimage映像文件
  d.可以通过hadoop dfsadmin -rollEdits命令对edits文件强制滚动,并
更新fsimage映像文件。

8.edits_inprogress文件在滚动之后会产生一个新的edits以及一个新的
edits_inprogress
9.namenode通过心跳机制对datanode进行管理
10.datanode每隔3s对namennode发送一次心跳
11.HDFS的心跳机制其实是RPC
12.如果超过10分钟namenode没有接收到datanode的心跳,namenode会认为
datanode已经宕机,并根据元数据对该datanode中的数据进行备份。
13.心跳信息包含:
  datanode的状态(预服役,服役,退役,预退役)
  BlockId

图解HDFS的文件存储过程

以下图片引用博客csdn 1. HDFS写数据原理

2. HDFS读数据原理

3. HDFS故障类型和其检测方法

第二部分:读写故障的处理

第三部分:DataNode 故障处理

副本布局策略:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-06T,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • HDFS设计原理
  • namenode
  • 图解HDFS的文件存储过程
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档