为什么HDFS中小于一个块大小的文件不会占据整个块的空间呢?

如题所述

要是每个块都占用整个块的空间 那么hdfs需要多少存储空间啊
hdfs的块只是逻辑概念 我是这么理解的追问

可是hdfs就是将一个文件进行切片分块,然后将块放在系统各节点上。如果不足一个块不占用整个空间,就意味着不同的文件可能混用一个块,这对寻址和传输查找都是非常有影响的,hadoop就是为大数据的存储和计算解决问题,这对大数据的查询和计算都太有影响了啊

追答

举个例子:hdfs相当于一辆卡车,每个块相当于包装箱 ,每个包装箱可以放10kg东西,但是一个包装箱只能放一个东西,所以当一个东西超过10kg,那么就分成两个包装箱放;当一个东西不足10kg时,也会使用一个包装箱,但是这个包装箱并不是10kg,而是这个东西的实际重量,但是这对定位这个包装箱没有任何影响呀,比如说他是按顺序排列的,那么他依旧是按顺序排列的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-03
真不知道 你是怎么想的 居然会问这种问题

hdfs为什么不适合处理大量的小文件
有一种误解就是,之所以HDFS不适合大量小文件,是因为即使很小的文件也会占用一个块的存储空间。这是错误的,HDFS与其它文件系统不同,小于一个块大小的文件,不会占用一个块的空间。

为什么hadoop不适合处理小文件
Hadoop不适合处理小文件,主要是因为小文件会导致大量的元数据在NameNode中占用内存,以及小文件存储效率低和Map任务调度效率低等问题。首先,Hadoop分布式文件系统(HDFS)的核心设计是块存储,块是HDFS中的最小数据单位,每个块的大小默认为64MB或128MB。当存储小于块大小的小文件时,这些文件并不会占用完...

HDFS架构
也就是说,存储在HDFS中的文件都会被分割成128 MB一块的数据块进行存储,如果文件本身小于一个数据块的大小,则按实际大小存储,并不占用整个数据块空间。HDFS的数据块之所以会设置这么大,其目的是减少寻址开销。数据块数量越多,寻址数据块所耗的时间就越多。当然也不会设置过大,MapReduce中的Map任务...

Hadoop HDFS处理大量的小文件
如果存储1亿个文件,则NameNode需要150G空间,这毫无疑问1亿个小文件是不可取的。其次,处理小文件并非Hadoop的设计目标,HDFS的设计目标是流式访问大数据集(TB级别)。因而,在HDFS中存储大量小文件是很低效的。访问大量小文件经常会导致大量的寻找,以及不断的从一个DatanNde跳到另一个DataNode去检索...

大数据之HDFS
Hadoop2.X默认128M, 小于一个块的文件,并不会占据整个块的空间 。Block数据块大小设置较大的原因:文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block,然后进行存储。Client 还提供一些命令来管理 HDFS,比如启动或者关闭HDFS。Namenode始终在内存中保存metedata,用于处理“读请求”,到有...

hadoop的hdfs中存一个12kb的档案,他实际占用的空间是12kb还是128mb?
12KB的相片 是多大 容量太小,手机照的一般解析度也不会高,想放大肯定会变的模糊不清的。光影魔术手可以处理,如果你会用的话 怎么把12KB的图片改成5KB 在Ps里面修改画素或大小都行 存进百度云的档案,占用的空间是记忆体卡的,还是免费的空间 存进百度云的档案,就都上传到网上的免费空间里...

hdfs参数配置详解
5、hdfs的进程节点 1.namenode 记录源数据的命名空间 数据分配到那些datanode保存 协调客户端对文件访问 2.datanode 负责所在物理节点的储存管理 一次写入,多次读取(不能修改) 文件由数据块组成,典型的块大小是64M 数据块尽量散步到各个节点 3.secondarynamenode (辅助) 当NameNode重启的时候,会合并硬盘上的fsimage文...

怎样理解spark中的partition和block的关系
hdfs中的block是分布式存储的最小单元,类似于盛放文件的盒子,一个文件可能要占多个盒子,但一个盒子里的内容只可能来自同一份文件。假设block设置为128M,你的文件是250M,那么这份文件占3个block(128+128+2)。这样的设计虽然会有一部分磁盘空间的浪费,但是整齐的block大小,便于快速找到、读取对应的...

有人配过 hive 的审计日志吗
唯一的优势可能就是将众多的小文件打包成一个har 文件了,那这个文件就会按照dfs.block.size 的大小进行分块,因为hdfs为每个块的元数据大小大约为150个字节,如果众多小文件的存在(什么是小文件内,就是小于dfs.block.size 大小的文件,这样每个文件就是一个block)占用大量的namenode 堆内存空间,...

大数据面试题集锦-Hadoop面试题(二)-HDFS
在HDFS中,文件物理上是分块存储的,块的大小可以通过配置参数( dfs.blocksize)来规定。默认大小在hadoop2.x版本中是128M,老版本中是64M。块大小不能设置得太小或太大。块的大小应足够大以减少寻址开销,同时考虑到磁盘传输速率。如设置为128MB时,寻址时间约为10ms,传输速率为100MB\/s,块大小约...

相似回答