HDFS

  1. namenode的目录结构

HDFS_第1张图片

namenodeID是文件系统命名空间的唯一标识符,是在namenode首次格式化时创建的。clusterID是将HDFS集群作为一个整体赋予的唯一标识符,对于联邦HDFS非常重要,这里一个集群由多个命名空间组成,且每个命名空间由一个namenode管理。blockpoolID是数据块池的唯一标识符,数据块池中包含了由一个namenode管理的命名空间中的所有文件。cTime属性标记了namenode存储系统的创建时间。对于刚刚格式化的存储系统,这个属性值为0,但是在文件系统升级之后,该值会更新到新的时间戳。storageType属性说明该存储目录包含的是namenode的数据结构。in_use.lock文件是一个锁文件,namenode使用该文件为存储目录加锁,可以避免其他namenode实例同时使用(可能会破坏)同一个存储目录的情况。namenode在内存中维护文件系统的元数据,当编辑日志被修改时,相关元数据信息也同步更新,内存中的元数据可支持客户端的读请求。

编辑日志体现为磁盘中的多个文件,名称由edits前缀和后缀指示出该文件所包含的事务ID。任意时刻只有一个文件处于打开可写状态,当namenode向多个目录写数据时,只有当左右的写操作更新并同步到每个复本之后方可返回成功代码。

每个fsimage文件都是文件系统元数据的一个完整的永久性检查点,如果namenode发生故障,最近的fsimage文件将被载入到内存以重构元数据的最近状态,再从相关点开始向前执行编辑日志中记录的每个事务,事实上,任何namenode在启动阶段都是这样做的。

  1. datanode的目录结构

和namenode不同的是,datanode的存储目录是初始阶段就自动创建的,不需要额外格式化。

HDFS_第2张图片

如果指定了不同磁盘上的多个目录,那么数据块会以轮转的方式写到各个目录中。注意,同一个datanode上的每个磁盘上的块不会重复,只有不同datanode之间的块才会重复。

查询namenode是否处于安全模式

hdfs dfsadmin -safemode get

打开namenode安全模式

 hdfs dfsadmin -safemode enter

在执行某条命令前先离开namenode安全模式

hdfs dfsadmin -safemode wait

namenode离开安全模式

hdfs dfsadmin -safemode leave

 

你可能感兴趣的:(HDFS,Hadoop,大数据)