hdfs的分布式存储原理

1.想要把一个大文件存储到hdfs,首先进行划分,将文件划分为一个一个的block,这个block默认为512MB,可修改.

2.备份(也就是副本)

将文件划分后,一个block丢失则原来的大文件没有用了.为了确保文件的安全性,hdfs提供了副本,也就是备份,将文件划分之后hdfs默认将每一个block备份到其他不同datanode上(默认是备份两个不同datanode,可修改),这样一个block丢失可以将备份的复制到原位置,确保了hdfs文件系统的安全性

3.hdfs的副本数修改:

方式一:文件是hdfs.site.xml,默认是三个副本,基本无需修改

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

方式二:上传文件是自定义副本数量

命令: hadoop fs -D dfs.replication=2 -put test.txt /tmp/

-D表示执行文件系统命令时自行加入配置项

这时副本数根据配置文件来,我也没搞懂

4.查看副本,文件状态

命令: hdfs fsck path [-files [-blocks [-locations]]]

5。block配置,也在hdfs.site.xml文件

1684354456B=256MB,这是默认,可以自行修改

6.namenode元数据,元数据文件(edits)

一:edits文件,记录hdfs的每一次记录

二:FSImage文件(edits文件的合并)

三:配置,配置文件在hdfs.site.xml

查看元数据:(里面有edits文件与fsimage文件)

四:元数据合并控制参数

(1)定时过程:基于:dfs.namenode.checkpoint.period,默认 3600( 秒 )即1小时 dfs.namenode.checkpoint.txns,默认1000000,即 100W 次事务.只要有一个达到条件就执行。

(2)检查是否达到条件,默认60秒检查一次,基于:dfs.namenode.checkpoint.check.period.默认60 (秒),来决定.

五:合并由secondarynamenode处理

namenode运行客户所操作的命令后,生成edits文件,操作的文件或文件夹放入namenode与datanode,而namenode的fsimage文件由secondarynamenode把namenode的edits文件拿过来进行合并,再返回到namenode里.

没有secondarynamenode就没有fsimage文件

7.数据的写入流程:

一. 客户端向NameNode发起请求

二. NameNode审核权限、剩余空间后 ,满足条件允许写入, 并告知客户端写入的DataNode地址

三. 客户端向指定的DataNode发送数据包

四. 被写入数据的 DataNode 同时完成数据副本的复制 工作,将其接收的数据分发给其它DataNode

五. 写入完成,客户端通知NameNode,NameNode做元数据记录工作

8.数据的读流程:

一、客户端向NameNode申请读取某文件

二 、 NameNode判断客户端权限等细节后,允许读取,并返回此文件的block列表

三、 客户端拿到block列表后自行寻找DataNode读取即可

namenode就是干分析与记录的事儿,datanode完全是存放数据的,secondarynamenode就是把namenode生产出来的edits文件合并为fsimage文件,增加整个系统的性能

相关推荐
爱吃青椒不爱吃西红柿‍️2 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
IT果果日记3 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教6 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
PersistJiao18 分钟前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
大数据·spark·top·sortby
羑悻的小杀马特19 分钟前
环境变量简介
linux
2301_8112743130 分钟前
大数据基于Spring Boot的化妆品推荐系统的设计与实现
大数据·spring boot·后端
Yz987637 分钟前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
青云交38 分钟前
大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
武子康41 分钟前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康43 分钟前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql