大数据Hadoop之HDFS文件系统总结

这里写图片描述

总结:
1.hdfs防止文件丢失,设计的解决办法是在不同服务器上再创建一个相同的副本进行存储
2.用户在上传文件的时候,是直接与服务器的DataNode进行连接,不需要通过NameNode,因此用户不会与NameNode产生连接
3.用户在上传文件的时候,只需要上传一次,传入到hdfs以后,由系统自己去DataNode拿数据,进行副本的一个备份存储

Hdfs文件系统的特性:
高容错:认为硬件总是不可靠
解决办法:在不同的服务器的DataNode进行创建一个完全相同的副本,进行备份,防止文件出现丢失或者损坏
高吞吐量:为大量数据访问应用提供高吞吐量的支持
高吞吐量原理:hdfs对大文件进行了分块的上传、存储,输出下载,因此用户在进行访问的时候,hdfs是多个数据块进行的多线程的方式来进行,因此可以达到高吞吐量的支持
大文件存储:支持存储TB-PB级的数据
原理:hdfs对大文件进行分块处理再进行多块的存储

Hdfsd 的设计思想:分块
分块:将大文件切成小块
Hdfs2中为128M, hdfs1中为64M 如果主机的网卡级别能够达到1000M或者10000M的级别,同时公司业务设计的文件大多数为大文件,我们可以将块的大小进行适量的调大,这样可以减少服务器与服务器直接的连接,因此可以节约很多时间,提高传输的效率

HDFS适合做什么:
1.大文件存储
2.流式数据访问
HDFS不适合做什么:
1.大量小文件传输
2.随机写入(不支持)
原因:修改一个,会影响后面所有的块以及所有的副本,包括会影响NameNode中的fsimage
3.低延迟读写
数据量大,时间较长,速度较慢

Hdfs解决故障率:监控异常,并自动恢复
NameNode会监控DataNode块的信息,即:所存储文件块列表信息等
监控:
主动监控:NameNode会定期查看DataNode中块的信息(适合小数据)
被动监控:DataNode定期主动向NameNode通信,即心跳机制(适合大数据)
心跳机制:DN定期主动与NN通信,发送相应的信息(元数据)
NN允许DN有时间延迟,当心跳的时间到了,DN没有发送数据,NN不会立马进行执行删除和另外的存储,等待一定的时间,若超过等待的时间,还是没有接受到DN数据,NN将副本复制到另外一台服务器上,复制完成以后,将原来丢失了的数据块进行删除,放到回收站中,防止垃圾数据块占用空间。

edits文件:原理是在系统运行期间,保存客户端对元文件操作记录 因此在edits文件中存储着最新的操作记录

fsimage文件:在NameNode中存储元数据信息,即元信息文件
Fsimage文件的组成:
1.件名目录名以及他们之间的层级关系 目录结构
2.文件目录的所有者以及具体的权限 权限信息
3.每个文件块的名字以及文件块的组成部分:文件分成了多少块,分别存储在哪些的DataNode上 块信息
edits文件:上传、追加、删除(NameNode中)

客户端操作指令: 删除 追加 上传
删除操作:
1.先通过NameNode查询文件块放在哪个DateNode,NN告知客户端
2.DataNode直接与客户端进行通信,在DateNode中找到文件快将其读出来
3.将文件块信息内容循环遍历
4.新建一个文件,将文件快的内容写入一个新文件
5.在写的过程,当识别出删除的部分,不写入
6.当所有要删除的内容都跳过写入,这个判断结束以后,文件操作将后面的内容继续写入,直至结束
7.删除原文件,将其丢至回收站,将新文件名字改为原文件,删除操作结束
客户端操作流程:
1.用户先访问edits文件
2.再访问fsimage文件
3.NN告知客户端需要操作的元文件的每个数据库块在哪些DN
3.客户端直接访问DateNode执行客户端指令操作
4.edits文件记录客户端操作记录
DataNode的操作指令来至于NameNode

seconDaryNameNode:
周期性的对edits文件和fsimage文件进行合并
纯手打,不对之处,欢迎指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值