HDFS的体系架构
NameNode:名称节点
1. 职责:
- 是HDFS的主节点、管理员
- 接受客户端(命令行、Java程序)的请求:创建目录、上传数据、下载数据、删除数据等
- 管理和维护HDFS的维护和元信息
日志文件(edits文件):记录的是客户端的所有操作,同时体现了HDFS的最新状态
edits文件是二进制文件
位置:$HADOOP_HOME/tmp/dfs/name/current,inprogress表示正在操作的日志文件
HDFS提供了一个日志查看器(edits viewer),把eidts文件转成文本格式xml
命令: hdfs oev -i edits_inprogress_xxx -o a.xml
元信息文件(fsimage文件):记录的是数据块的位置信息和数据块的冗余信息
也是二进制文件
位置:
HDFS提供了一个元信息查看器(image viewer),转换成txt或者xml文件
命令:
hdfs oiv -i fsimage_xxx -o b.xml
没有体现HDFS的最新状态
DataNode:数据节点
职责:
1.按数据块保存数据库
1.x 64M
2.x 128M
3. 数据块:表现形式:就是一个文件以blk_开头的
4. 设置数据块冗余度原则:一般跟数据节点个数相同,不要超过3设置数据块冗余度原则:一般跟数据节点个数相同,不要超过3
5. Hadoop 3.x以前会造成存储空间的极大浪费,Hadoop 3.0新特性,增加了HDFS的纠删码技术,大大节约存储空间(节约一半)
SecondaryNameNode:第二名称节点
与NameNode没有任何相似性,
职责:
进行日志信息的合并
- 由于日志文件体现了最新信息,会越来越大
- 把日志信息写到fsimage文件中来,
- 然后日志文件就可以清空了
合并什么时间发生:
当HDFS发出检查点,checkpoint时
检查点:理解成时间,或者标志,
默认情况下,HDFS每隔60min产生一个checkpoint
或者当edits文件超过64M,SecondaryNameNode就会去合并(拷贝,合并,写回NameNode)
待补充知识点
1)Spark中RDD的检查点:容错机制
2)Oracle中的检查点:会以最高优先级唤醒数据库的写进程,将数据写入yin