· 在hadoop的目录中有一个dfs目录,它对于HDFS十分关键,下面我们就介绍一下其子目录以及他们各自的作用:
1.存储HDFS中的数据
2.子目录:
a.data表示DateNode存储数据的目录
b.name表示NameNode存储元数据的目录
c.namesecondary表示SecondaryNameNode存储元数据的目录
3.节点刚格式化完成之后,会自动产生一个dfs/name
4.data目录和name目录可以分开指定的
5.name/current/VERSION中的clusterID:节点编号作为当前节点的唯一编号,当dataNode启动的时候,会自动将NameNode的节点编号拷贝过去作为验证
6.在NameNode格式化之后,会自动在name/current产生fsimage_00000000000
7.在HDFS中,会对每个操作分配一个递增的事务ID—txid,
fsimage_XXXXX的数字表示txid—记录从上次结束到下次结束之间产生的所有数据
8.启动HDFS之后,在name/current目录下会自动产生
edits_inprogress_0000000000000000001
9.edits_improgeress_xxxx 记录当前执行的操作
10.在HDFS第一次启动的一分钟以后,edits和fsimage自动的进行一次合并,后续就按照触发条件进行合并
查看:
11.editx文件的开始一定是OP_START_LOG_SEGMENT,结束一定是OP_END_LOG_SEGMENT
12.上传文件:
a.OP_ADD:表示在HDFS中来创建一个同名的空文件,并且文件名标记为xxx.copying
b.OP_ALLOCATE_BLOCK_ID:表示分配数据块的编号
c.OP_SET_GENSTAMP_V2:分配一个产生实际那戳的编号
d.OP_ADD_BLOCK:向文件块写数据
e.OP_ADD_CLOSE:关流
f.OP_RENAME_OLD:将xxx._COPYING_重命名为准确的文件名
13.in_use.lock为了放置一个节点多次启动NameNode(用于防止多次启动)
- hdfs oev -i edits_XXXX –o xxx.xml 表示将edits文件转化为xml
15.hdfs oiv –i fsimge_xxx.xml –p xx.xml