1. 主节点:NameNode
(*)职责:管理HDFS
接受客户端的请求:文件上传、文件下载
管理和维护日志(edits文件)和元信息(数据块的位置信息:fsimage文件)
(*) HDFS的日志:edits文件
举例:创建目录 ----> 产生日志
hdfs dfs -mkdir /mydemo1
查找edits文件:find . -name edits*
(1) edits_inprogress_0000000000000000105是二进制文件
(2) HDFS提供一个工具:edits viewer 日志查看器,转换成XML文件
命令: hdfs oev -i edits_inprogress_0000000000000000105 -o ~/a.xml
内容如下:
<RECORD>
<OPCODE>OP_MKDIR</OPCODE>
<DATA>
<TXID>107</TXID>
<LENGTH>0</LENGTH>
<INODEID>16416</INODEID>
<PATH>/mydemo1</PATH>
<TIMESTAMP>1512565581211</TIMESTAMP>
<PERMISSION_STATUS>
<USERNAME>root</USERNAME>
<GROUPNAME>supergroup</GROUPNAME>
<MODE>493</MODE>
</PERMISSION_STATUS>
</DATA>
</RECORD>
(*)HDFS的元信息:fsimage文件:记录数据块的位置信息、冗余信息等
查找fsimage文件:find . -name fsimage* 这个文件也是二进制的
HDFS也提供了一个工具:image viewer,可以把fsimage文件转换成文本,XML的文件
2.从节点:DateNode
(*)按数据块保存数据:1.x: 64M 2.x: 128M
(*) 数据块在操作系统的位置:
find . -name blk*
/root/training/hadoop-2.7.3/tmp/dfs/data/current/BP-156326068-192.168.157.11- 1512395988927/current/finalized/subdir0/subdir0
(*)设置数据块冗余度的基本原则
一般,冗余度跟数据节点的个数一样,最大不要超过3
3、第二名称节点:SecondaryNameNode,默认就跟NameNode在一起
(*)职责:定期进行日志信息的合并,edits ---> fsimage中 (edits文件体现了HDFS的最新状态)
(*)掌握日志合并过程