其他分享
首页 > 其他分享> > HDFS文件目录结构详解6

HDFS文件目录结构详解6

作者:互联网

1.3.2 edits_*文件

edits文件中存放的是客户端执行的所有更新命名空间的操作。

这里我们首先了解一下transactionId的概念。transactionId与客户端每次发起的RPC操作相关,当客户端发起一次RPC请求对Namenode的命名空间修改后,Namenode就会在editlog中发起一个新的transaction用于记录这次操作,每个transaction会用一个唯一的transactionId标识。

edits_*分为两类文件,一类是edits_startTransactionId-endTransactionId,另一类是edits_inprogress_startTransactionId。对于第一类文件,每个edits文件都包含了文件名中从startTransactionId开始到endTransactionId之间的所有事务。

第二类文件表示正在进行处理的editlog,所有从startTransactionId开始的新的修改操作都会记录在这个文件中,直到HDFS重置这个日志文件,重置操作会将inprogress文件关闭,并将inprogress文件改名为正常的editlog文件,即第一类文件,同时还会打开一个新的inprogress文件,记录正在进行的事务。

可以通过oev命令查看edits文件,基本命令格式为:

hdfs oev -p 文件类型(通常为xml) -i edits文件 -o 转换后文件输出路径
<?xml version="1.0" encoding="UTF-8"?>
<EDITS>
  <EDITS_VERSION>-63</EDITS_VERSION>
  <RECORD>
    <OPCODE>OP_START_LOG_SEGMENT</OPCODE>
    <DATA>
      <TXID>63949</TXID>
    </DATA>
  </RECORD>
  <RECORD>
    <OPCODE>OP_END_LOG_SEGMENT</OPCODE>
    <DATA>
      <TXID>63950</TXID>
    </DATA>
  </RECORD>
</EDITS>

标签:HDFS,文件目录,editlog,文件,edits,详解,inprogress,transactionId,startTransactionId
来源: https://blog.csdn.net/m0_37613244/article/details/109920633