Edits和Fsimage文件

知识点

Edits和Fsimage文件_第1张图片

通过:hdfs oev -i edits_inprogress_0000000000000000003 -o bbb.xml   查看edits_inprogress_0000000000000000003文件的内容,把内容输出到bbb.xml中,vim bbb.xml即可查看内容

1.当执行格式化指令时,会在指定的tmp目录下,生成/dfs/name目录(此目录在不设定dfs.namenode.name.dir时,在hadoop.tmp.dir配置的路径中。

2.当格式化后,启动hdfs前,会生成一个最初的fsimage_0000000000000000000文件

 
     
     
                hadoop.tmp.dir
                /usr/local/hadoop-2.6.4/tmp
       

3.在dfs/data目录,这是datanode节点存储数据块的目录

4.元数据的存储目录和数据节点的目录的路径可以分开

5.重启后,会在dfs/name/in_use.lock ,这个文件的作用是防止在同一台服务器上启动多个namenode,避免管理的混乱。

6.当启动hdfs时,会生成edits文件

7.hdfs有事务id的概念,当hdfs每接受一个事务操作(比如mkdir put mv),都会分配相应的事务id,然后写在edits文件中。

8。每当生成一个新的edits文件,edits文件中都会以begin log开头,当一个edits文件写完 后,会已end edit结束,即在beginlog====end log之间存储的事这个edits文件所有的事务操作。

9.edits-inprogress文件的作用是当前正在执行的事务操作。后边的编号是上一次事务id txid+1来命名。

10.初次使用hdfs时,有一个默认的edits和fsimage的合并周期是1分钟,以后再使用hdfs的过程中,edits-inprogress到达默认的合并周期(3600s)会执行。或者手动合并指令(hadoop dfsadmin -rollEdits),或者停止hdfs再启动

11.上传文件拆分很多事务过程

     OP_ADD将文件假如到指定的HDFS目录下,并以_coping结尾,表示此文件还没写完

    ALLOCATE_BLOCK_ID 为文件分配块ID

   SET_GENSTAMP_V2为块生成时间戳版本号,是全局唯一的。

  ADD_BLOCK写块数据

 OP_CLOSE表示块数据写完了

 OP_RENAME_OLD将文件重命名,表示写完了。

12,当停止hdfs再启动hdfs,执行一个事务后,会触发一次rolledits指令触发endlog事务,然后会产生一个新的edits

13seen_txid记录是最新的edits_inprogress文件末尾的数字

14.fsimage_N文件存储的N号事务前的所有的元数据信息

15.fsimage_00000000000000002.md5 存储的是fsimage文件的md5校验码

Edits和Fsimage文件_第2张图片Edits和Fsimage文件_第3张图片Edits和Fsimage文件_第4张图片Edits和Fsimage文件_第5张图片Edits和Fsimage文件_第6张图片

你可能感兴趣的:(Edits和Fsimage文件)