Java大数据之路--HDFS详解(4)--回收站机制及dfs目录

HDFS(分布式文件存储系统)--回收站机制及dfs目录

目录

HDFS(分布式文件存储系统)--回收站机制及dfs目录

一、回收站机制

概述

配置

注意事项

二、dfs目录

概述

三、查看edits文件和fsimage文件


一、回收站机制

概述

  1. 在HDFS中,回收站机制默认是关闭的,即从HDFS上删除文件的时候是立即删除的

  2. 可以通过配置来手动开启回收站,指定被删除文件的保留时间

配置

  1. 进入Hadoop的安装目录下的子目录etc/hadoop:cd hadoop-2.7.1/etc/hadoop
  2. 配置core-site.xml    vim core-site.xml
  3. 添加如下内容
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

其中1440,是在文件挪入回收站之后,在回收站中的存货时间,如果不配置默认是0、单位是min

注意事项

  1. 回收站的配置中,value的时间单位是分钟。如果配置程0,则表示不开启HDFS的回收站机制。
  2. 配置为1440表示回收间隔为1天,即文件在回收站存在1天后,会被清除
  3. 当启动回收站后,再删除文件时:
  4. 可以通过递归查看指令,查看回收站中的文件:hadoop fs -lsr  /user/root/.Trash
  5. 如果想恢复被删除的文件,执行hdfs 的mv 指令即可

二、dfs目录

概述

  1. dfs目录表示HDFS的存储目录(是在NameNode格式化之后出现的)
    1. dfs/name表示NameNode的持久化目录
    2. dfs/data表示DataNode的存储目录
    3. dfs/namesecondary表示SecondaryNameNode的存储目录
  2. in_use.lock用于标记当前节点已经开启了对应的进程,作用是防止在同一台服务器上启动多个NameNode,避免管理紊乱
  3. HDFS在第一次启动的时候,1min之后会自动进行一次edits文件的滚动
  4. 在HDFS中,会对每一次的写操作分配一个全局递增的编号,编号称之为事务id - txid
  5. 在HDFS中,将开始记录日志和结束记录日志看作是一个写操作--每一个edits文件的开头和结尾都是OP_START_LOG_SEGMENT和OP_END_LOG_SEGMENT
  6. 上传文件
    1. OP_ADD 将文件加入到指定的HDFS目录下,并以._Copyging_结尾,表示此文件还未写完
    2. OP_ALLOCATE_BLOCK_ID 为文件分配块ID
    3. OP_SET_GENSTAMP_V2 为块生成时间戳版本号,是全局唯一的
    4. OP_ADD_BLOCK 写块数据
    5. OP_CLOSE  表示块数据写完
    6. OP_RENAME_OLD 将文件重命名,表示写完
  7. 文件上传完之后不能改
  8. md5文件是为了防止文件篡改,对fsimage文件进行校验的
  9. version文件:
    1. clusterID - 集群编号。在NameNode格式化的时候自动计算产生的,也就意味着NameNode每格式化一次,clusterID就会重新计算(格式化之后就找不到原来的DataNode,需要把ClusterID重新分配给DataNode),NameNode会把ClusterID分发给每个DataNode,DataNode也只接受一次,每次通信都会携带ClusterID,都会校验集群ID是否一样。
    2. BlockpoolID - 块池编号。首先需要了解,联邦HDFS(在HDFS中,因为NameNode就只有1个,所以NameNode容易成为HDFS的并发瓶颈,把原来一个NameNode按目录划分成多个NameNode,操作是把多个NameNode看成一个NameNode,就是联邦HDFS,就是多个节点取代一个NameNode,需要把路径固定,每一个路径对应一个节点,能够有效的提高并发量,劣势在于路径无法在更改)。--------原来一个NameNode,现在多个NameNode,需要发送多个clusterID,增加了DataNode负担,也是增加了网络的负担。要求处于同一个联邦的NameNode的BlockPoolID要一致,才能体现是一个整体

三、查看edits文件和fsimage文件

  1. 查看edits文件:hdfs oev -i edits文件 -o xxx.xml。例如:hdfs oev -i edits_0000000000000000001-0000000000000000003 -o edits.xml
  2. 查看fsimage文件:hdfs oiv -i fsimage文件 -o xxx.xml -p XML。例如:hdfs oiv -i fsimage_0000000000000000012 -o fsimage.xml -p XML
  3. fsimage介绍:fsimage是一个二进制文件,当中记录了HDFS中所有文件和目录的元数据信息。

猜你喜欢

转载自blog.csdn.net/a34651714/article/details/102819263