HDFS介绍(七)hadoop block数据块(转)

本文详细解析了HDFS中block数据块作为基本存储单位的作用与优势,包括减少寻址时间、降低管理开销及提升读写效率。同时介绍了如何通过调整block大小优化存储,以及块缓存机制在提高频繁访问文件读取性能上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://blog.youkuaiyun.com/lb812913059/article/details/78713597

 

 

block数据块是HDFS文件系统基本的存储单位

block(块)128M 小于一个块的文件,不会占据整个块的空间

 

block数据块大小设置较大的原因(减少花销):

1)减少文件寻址时间

2)减少管理块的数据开销,每个块都需要在NameNode上有对应的记录

3)对数据块进行读写,减少建立网络的连接成本

 

一个文件可以划分成多个块进行存储,并保存三个副本以block块落地到文件系统中的。

 

也可以通过在hdfs-site.xml中对这个值进行修改

    <property>

        <name>dfs.block.size</name>

        <value>块大小 以KB为单位</value>//只写数值就可以

    </property>

 

查看文件所占用的块的信息

    hadoop fsck /xxxxx -files -locations -blocks

    查看HDFS文件系统上xxxxx这个文件的属性信息,名字,文件存储位置,文件的block数    

 

抽象成数据块的好处

 

  • 一个文件有可能大于集群中任意一个磁盘,10T*3/128 = xxx块 2T,2T,2T 文件方式存—–>多个block块,这些block块属于一个文件(方便存储大文件)

  • 使用块抽象而不是文件可以简化存储子系统

  • 块非常适合用于数据备份进而提供数据容错能力和可用性

 

 

块缓存(没看到懂)

 

通常DataNode从磁盘中读取块,但对于访问频繁的文件,其对应的块可能被显示的缓存在DataNode的内存中,以堆外块缓存的形式存在。默认情况下,一个块仅缓存在一个DataNode的内存中,当然可以针对每个文件配置DataNode的数量。作业调度器通过在缓存块的DataNode上运行任务,可以利用块缓存的优势提高读操作的性能。

 

例如:

连接(join)操作中使用的一个小的查询表就是块缓存的一个很好的候选。

用户或应用通过在缓存池中增加一个cache directive来告诉namenode需要缓存哪些文件及存多久。缓存池(cache pool)是一个拥有管理缓存权限和资源使用的管理性分组。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值