HDFS中数据节点数据块存储示例

        数据块在数据节点上是按照如下方式存储的。

        首先是一个存储的根目录/hadoop/data/dfs/dn,如下图所示:

        接着进入current目录,如下图所示:

        再进入后续的BP-433072574-192.168.1.224-1440568979639下current目录,如下图所示:

        在它下面,有一个版本号文件VERSION和分布式文件系统使用情况文件dfsUsed,然后就是两个文件夹,其中rbw存储的是处于写过程中的数据块,而finalized存储的则是写已完成并提交的数据块。我们看下finalized下的内容,如下图所示:

        finalized下有很多子目录,进入subdir4,如下图所示:

         又有很多子目录,再进入subdir42,如下图所示:

        这就是数据块数据文件及其元文件的真正存储地了,其中blk开头的数据块数据文件,数字表示数据块ID,而.mta结尾的则是数据块元数据问文件。数据块副本的存储路径有一个基础路径,并由众多的子路径保持组成。这几点与我们在《HDFS源码分析之数据块Block、副本Replica》一文中讲到的一样。

时间: 2024-10-25 15:15:06

HDFS中数据节点数据块存储示例的相关文章

hadoop单个数据节点的不同存储路径的存储策略源码分析。

产生问题于数据集群的数节点存储磁盘大小不同,造成使用一段时间以后容量小的磁盘空间紧张. 其实,早期配置了磁盘使用存储策略,就能解决该问题,部分网来上说这个策略无效,再hadoop2.0.1 本版有效,该版本应用于CHD4.6中. 为了找到准确的程序定位点,参考了以下的Hadoop设计文档. 参考 Hadoop中HDFS文件系统的Append/Hflush/Read设计文档: http://blog.csdn.net/chenpingbupt/article/details/7972589 文档中

winform 项目获取app.config 中appSettings节点数据

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture

简述Hadoop HDFS中的数据块和Map任务的分片

HDFS的数据块 磁盘数据块是磁盘进行数据读/写的最小单位,一般是512字节, 而HDFS中也有数据块,默认为64MB.所以HDFS上的大文件被分为许多个chunk.而HDFS上的小文件(小于64MB)的文件不会占据整个块的空间. HDFS数据块设置大的原因是减少寻址开销,数据备份也是以块为单位的. 用hadoop fsck / -files -blocks 命令可以检查HDFS根目录(/)下所有文件,块的健康状况: Map任务的分片: 为什么推荐Map任务的分片尺寸和HDFS基本块的大小一致为

HDFS源码分析数据块校验之DataBlockScanner

        DataBlockScanner是运行在数据节点DataNode上的一个后台线程.它为所有的块池管理块扫描.针对每个块池,一个BlockPoolSliceScanner对象将会被创建,其运行在一个单独的线程中,为该块池扫描.校验数据块.当一个BPOfferService服务变成活跃或死亡状态,该类中的blockPoolScannerMap将会更新.         我们先看下DataBlockScanner的成员变量,如下: // 所属数据节点DataNode实例 private

数据同步-mysql集群扩展一个数据节点问题

问题描述 mysql集群扩展一个数据节点问题 现在搭建成功集群是一个管理节点,2个数据节点和2个sql节点,在这基础上增加一个数据节点,即 3个数据节点 ,实现3个数据节点数据同步,我是修改了config.ini配置文件里的NoOfReplicas = 2改为了NoOfReplicas = 3 ,并加了一个数据节点配置信息在配置文件中,重新启动集群显示数据节点没有全部连接上,应该是NoOfReplicas = 3这个有问题,或config.ini还有什么需要修改的地方,请大神指教,在此十分感谢

HDFS源码分析数据块复制选取复制源节点

        数据块的复制当然需要一个源数据节点,从其上拷贝数据块至目标数据节点.那么数据块复制是如何选取复制源节点的呢?本文我们将针对这一问题进行研究.         在BlockManager中,chooseSourceDatanode()方法就是用来选取数据块复制时的源节点的,它负责解析数据块所属数据节点列表,并选择一个,用它作为数据块的复制源.其核心逻辑如下:         我们优先选择正处于退役过程中的数据节点而不是其他节点,因为前者没有写数据传输量因此相对不是很繁忙.我们不使用

HDFS源码分析数据块汇报之损坏数据块检测checkReplicaCorrupt()

        无论是第一次,还是之后的每次数据块汇报,名字名字节点都会对汇报上来的数据块进行检测,看看其是否为损坏的数据块.那么,损坏数据块是如何被检测的呢?本文,我们将研究下损坏数据块检测的checkReplicaCorrupt()方法.         关于数据块及其副本的状态,请阅读<HDFS源码分析之数据块及副本状态BlockUCState.ReplicaState>一文.         checkReplicaCorrupt()方法专门用于损坏数据块检测,代码如下: /** *

HDFS源码分析数据块复制监控线程ReplicationMonitor(一)

        ReplicationMonitor是HDFS中关于数据块复制的监控线程,它的主要作用就是计算DataNode工作,并将复制请求超时的块重新加入到待调度队列.其定义及作为线程核心的run()方法如下: /** * Periodically calls computeReplicationWork(). * 周期性调用computeReplicationWork()方法 */ private class ReplicationMonitor implements Runnable

Hadoop环境中管理大数据存储八大技巧

在现如今,随着IT互联网信息技术的飞速发展和进步.目前大数据行业也越来越火爆,从而导致国内大数据人才也极度缺乏,大讲台了解这一情况后专门在网上开通了这一门大数据培训课程,下面来介绍一下关于Hadoop环境中管理大数据存储技巧吧. 1.分布式存储 传统化集中式存储存在已有一段时间.但大数据并非真的适合集中式存储架构.Hadoop设计用于将计算更接近数据节点,同时采用了HDFS文件系统的大规模横向扩展功能. 虽然,通常解决Hadoop管理自身数据低效性的方案是将Hadoop数据存储在SAN上.但这也