HDFS节点说明
知识点说明:
在hdfs当中,会讲文件以块为单位进行划分。
1,hdfs 的默认块大小是128M(hdfs2)
hdfs1 中默认块的大小是64m
块的大小可以自定义。
2 ,块是如何占磁盘空间的?
先从头切128M的块,后面小于128按实际大小来存储。
3,在hdfs 中 dn节点主要干的事情是:储存所有的块信息。
注意: 一台服务器只允许有一个dn
4,为了保证数据的完整性,那以在hdfs当中会采用副本机制来进行处理(hdfs副本是包含本身)
副本之间是通过dn与dn之间的数据传输
5,当我们在获取一个文件的时候,只知道文件的名称,据他有哪些块用户是不知道的,所以就存在一个管理这些块信息的节点NN,NN也被称为主节点。
在默认的结构中,不管服务器有多少台,NN只有一个。
故障问题;
在实际生产的过程中,硬件出现故障的可能性是非常大的。
如果是dn挂掉了: NN会将挂掉的数据转移到其他主机中。
NN如何知道DN挂掉了: 是由DN定期向NN汇报信息,心跳机制
如果是NN挂掉?
那么集群将会是无法使用。
解决方案,多个NN协同运行的方式。
元数据: NN 保存的块信息,目录结构,权限
fsimage:是元数据的映射文件(存储在内存中)
如何产生fsimage文件:
1:DN会定期汇报块信息给NN(心跳信息,块信息)
2:重启
特殊是在重启的时候,因为fsimage文件不存在,所以需要向各个DN收集元数据信息。在收集的过程中,NN处于安全模式下(safe made)。暂时不能使用
edits:存储最近操作的记录。
snn:定期为NN合并fsimage和edits文件。
snn:如何进行合并。
第一种:定时:snn在一定时间内会通知nn,说我们准备合并
第二种;NN主动发起合并。
步骤:NN会产生一个新的edits文件,此时snn 会拿到NN中的 edits 跟fsimage文件进行合并,合并完形成一个fsimage.ckpt文件,然后复制给NN,此时NN就会去掉edtis 跟 fsimage后缀,形成新的这两个文件。然后重复上述操作。