1.数据存入HDFS是分布式存储,即每一个服务器节点,负责数据的一部分

2.数据在HDFS上是划分为一个个Block块进行存储。块大小默认为256MB

3.HDFS上,数据Block块可以有多个副本,提高数据安全性

4.fsck(file system check)命令:修改文件的副本数(默认为3份)

                    上传时修改:hdfs fsck -dfs.replication=2 -put path

                    修改已存在的文件:hdfs fsck -setrep 2 path

5.namenode元数据:

        元数据就是整个文件系统的信息以及整个文件系统的操作日志

         namenode通过一批edits和fsimage来管理整个文件系统的管理和维护

        edits文件,是一个流水账文件,记录了hdfs中的每一次操作。但是操作很多之后不易查找,所以有fsimage文件:将全部的edits文件,合并为最终结果,即可得到一个FSImage文件

        合并和工作由secondarynamenode完成,通过http协议从namenode拿取edits然后合并为fsimage回传给namenode使用。也是他唯一的职责

        fsimage文件记录某个时间点的整个文件系统的结构和状态,包括文件目录、文件路径、文件大小、块数等等

        合并流程:

                        1. 每次对HDFS的操作,均被edits文件记录

                        2. edits达到大小上线后,开启新的edits记录

                        3. 定期进行edits的合并操作

                •如当前没有fsimage文件,  将全部edits合并为第一个fsimage
                •如当前已存在fsimage文件,将全部edits和已存在的fsimage进行合并,形成新的fsimage

                        5. 重复123流程

         合并控制参数(合并周期):              

                        对于元数据的合并,是一个定时过程,基于:

                •dfs.namenode.checkpoint.period,默认3600(秒)即1小时
                •dfs.namenode.checkpoint.txns,默认1000000,即100W次事务

                        只要有一个达到条件就执行。

                        检查是否达到条件,默认60秒检查一次,基于:

                        •dfs.namenode.checkpoint.check.period,默认60(秒),来决定
6.数据读写

        

更多推荐