DataNode的目录结构

版权声明:有一种生活不去经历不知其中艰辛,有一种艰辛不去体会,不会知道其中快乐,有一种快乐,没有拥有不知其中纯粹 https://blog.csdn.net/wwwzydcom/article/details/83759559

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

  1. 在/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current

     cat VERSION 
    
     #Tue Nov 06 05:43:25 CST 2018
     storageID=DS-6d013652-f213-4118-9e89-e53d7ab028c9
     clusterID=CID-6f007c44-5418-431f-898d-f72631c4b7ba
     cTime=0
     datanodeUuid=fbf8675e-abcb-48ea-9bff-278d8c89831e
     storageType=DATA_NODE
     layoutVersion=-56
     
     (1)storageID:存储 id 号
     (2)clusterID 集群 id,全局唯一
     (3)cTime 属性标记了 datanode 存储系统的创建时间,对于刚刚格式化的存储系统,这个属性为 0;但是在文件系统升级之后,该值会更新到新的时间戳。
     (4)datanodeUuid:datanode 的唯一识别码
     (5)storageType:存储类型
     (6)layoutVersion 是一个负整数。通常只有 HDFS 增加新	特性时才会更新这个版本号。
    
     /opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-2057549969-192.168.18.50-1541454133515/current
    

    查看数据块的版本号

     [root@testnote01 current]# cat VERSION 
     #Tue Nov 06 05:43:25 CST 2018
     namespaceID=562825234
     cTime=0
     blockpoolID=BP-2057549969-192.168.18.50-1541454133515
     layoutVersion=-56
    

(1)namespaceID:是 datanode 首次访问 namenode 的时候从 namenode 处获取的
storageID 对每个 datanode 来说是唯一的(但对于单个 datanode 中所有存储目录来说则
是相同的),namenode 可用这个属性来区分不同 datanode。
(2)cTime 属性标记了 datanode 存储系统的创建时间,对于刚刚格式化的存储系
统,这个属性为 0;但是在文件系统升级之后,该值会更新到新的时间戳。
(3)blockpoolID:一个 block pool id 标识一个 block pool,并且是跨集群的
全局唯一。当一个新的 Namespace 被创建的时候(format 过程的一部分)会创建并持
久化一个唯一 ID。在创建过程构建全局唯一的 BlockPoolID 比人为的配置更可靠一些。
NN 将 BlockPoolID 持久化到磁盘中,在后续的启动过程中,会再次 load 并使用
(4)layoutVersion 是一个负整数。通常只有 HDFS 增加新特性时才会更新这个
版本号。

Datanode的多目录配置:
1)datanode也可以配置多个目录,每个目录存储的数据不一样,数据不是副本

和namenode一样停止所有进程
删除data和logs目录

修改配置文件hdfs-site.xml

<property>
<name>dfs.datanode.data.dir</name>
<value>file:///${hadoop.tmp.dir}/dfs/data1,file:///${hadoop.tmp.dir}/dfs/data2</value>
</property>

启动集群
上传文件
hdfs fs -put 文件名 /

在这里插入图片描述

两个目录存储不一样,和namenode机制不同

猜你喜欢

转载自blog.csdn.net/wwwzydcom/article/details/83759559