hadoop块的概念

今天突然发现集群存储节点有几个小文件,不到20M,这类小文件会影响集群的健康度,到底是如何影响的呢?hdfs为小文件分配一个块,到底是逻辑块还是实际的存储呢?本文将快速解析

datanode负责存储数据,namenode负责管理元数据,管理元数据通过fsimage(磁盘中元数据的镜像文件)和edits文件(操作日志)

HDFS的block默认为128M,块设置的这么大,是为了最小化寻址的开销,如果块设置的足够大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间,因而,传输一个由多个块组成的文件的时间取决于磁盘的传输速率。但是这个数也不会设置的过大,mapreduce中的map任务通常一次只处理一个块中的数据,因此如果任务数太少(少于集群中节点的数量),运行速度会很慢

使用抽象块的好处,第一个就是一个文件的大小可以大于网络中任意一个磁盘的容量,文件的所有块不需要存储在同一个磁盘上;第二个就是使用固定的抽象块,方便集群元数据的管理,块的大小是固定的,因此计算单个磁盘能存储多少个块就相对容易,hdfs为一个block记录一条元数据信息,所以尽量让他的每一个块都很饱满,这样,就不会因为过多的元数据信息给namenode带来负担

大量的小文件会导致元数据过多,namenode负载高;执行计算任务时,一个块分配一个map,影响计算效率,hdfs为小文件分配一个块,但是文件实际存储是不会占满一个块的大小的,hdfs的块是逻辑块

hadoop fsck /share/external_table/ssa/DPI_MBL -blocks
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值