大数据学习05:HDFS数据的存储

HDFS:数据存储

(一)HDFS的体系架构

1、NameNode:名称节点

       (*)职责:
            (1)是HDFS的主节点、管理员
            (2)接收客户端(命令行、Java程序)的请求:创建目录、上传数据、下载数据、删除数据
           (3)管理和维护HDFS的日志和元信息
                (*)日志文件(edits文件):记录的客户端的所有操作
                    (是一个二进制文件)
                    位置:$HADOOP_HOME/temp/dfs/name/current
                    edits_inprogress_000000000000000000000107代表:正在操作的日志文件
                    举例:hdfs dfs -mkdir /aaa
                    HDFS提供了一个查看器(edits viewer ):把edits文件转换成文本格式
                    命令:hdfs oev -i edits_inprogress_000000000000000000000107 ~/a.xml
               (*)元信息文件(fsimage文件):记录的是数据块的位置信息、数据块的冗余信息,
               没有数据体现HDFS的最新状态
               是一个二进制文件
               位置:$HADOOP_HOME/tmp/dfs/name/current
               HDFS提供了一个元信息查看器(imageviewer),把fsimage文件转为文本或者xml都可以

2、DateNode:数据节点

            (*)按数据块保存数据
                    1.x:64M
                    2.x:128M
            (*)数据块:表现形式:就是一个文件(blk*****************)

大数据学习05:HDFS数据的存储

             举例:上传一个大于128M的文件
             (*)设置数据块冗余度原则:一般跟数据节点的个数一样:但是最大不超过3
             (*)Hadoop 3.以前。会造成空间的极大浪费
             (*)Hadoop 3.以后。HDFS纠删码技术,大大节约存储空间

3、SecondaryNameNode:第二名称节点

            职责:进行日志的合并
            
            (*)由于edits文件记录了最新的状态信息,并且随着操作越多,edits就会越大
            (*)需要edits中的最新信息写到fimage中
            (*)edits文件就可以清空
            
            (NameNode和SecondaryNameNode在同一台机器上,会提高效率)

大数据学习05:HDFS数据的存储
补充点知识:检查点checkpoint
() Spark中的检查点:容错机制
)Oracle中的检查点:会以最高优先级唤醒数据库的写进程,将脏数据写入硬盘文件