首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否将多个文件存储在单个块中?

是否将多个文件存储在单个块中?
EN

Stack Overflow用户
提问于 2014-01-22 12:41:29
回答 4查看 5.7K关注 0票数 4

当我将许多小文件存储到HDFS中时,它们是否会存储在单个数据块中?

在我看来,根据下面的讨论,这些小文件应该存储到单个块中:HDFS block size Vs actual file size

EN

回答 4

Stack Overflow用户

发布于 2014-01-22 12:46:41

引用Hadoop -权威指南

HDFS存储小文件效率低下,因为每个文件都存储在一个块中,而块元数据由namenode保存在内存中。因此,大量的小文件可能会占用namenode上的大量内存。(但是请注意,小文件占用的磁盘空间不会超过存储文件原始内容所需的磁盘空间。例如,以128 MB的数据块大小存储的1 MB文件使用1 MB的磁盘空间,而不是128 MB。)Hadoop Archives或HAR文件是一种文件归档工具,可以更高效地将文件打包到HDFS块中,从而减少namenode内存使用量,同时仍然允许对文件进行透明访问。

结论:每个文件将存储在单独的块中。

票数 11
EN

Stack Overflow用户

发布于 2014-01-22 18:37:23

以下是Hadoop权威指南中指定的内容:

与单个磁盘的文件系统不同,

中小于单个数据块的文件不会占用整个数据块的底层存储空间

例如,如果您有30 MB的文件,并且数据块大小为64 MB,则此文件在逻辑上将存储在一个数据块中,但在物理文件系统中,HDFS仅使用30 MB来存储文件。剩下的30MB将免费使用。

票数 2
EN

Stack Overflow用户

发布于 2017-09-01 16:40:36

每个block只属于一个文件,如下所示:1.使用fsck命令获取文件的block信息:

代码语言:javascript
代码运行次数:0
运行
复制
hadoop fsck /gavial/data/OB/AIR/PM25/201709/01/15_00.json -files -blocks

输出如下:

代码语言:javascript
代码运行次数:0
运行
复制
    /gavial/data/OB/AIR/PM25/201709/01/15_00.json 521340 bytes, 1 block(s):  OK
0. BP-1004679263-192.168.130.151-1485326068364:blk_1074920015_1179253 len=521340 repl=3

Status: HEALTHY
 Total size:    521340 B
 Total dirs:    0
 Total files:   1
 Total symlinks:        0
 Total blocks (validated):  1 (avg. block size 521340 B)
 Minimally replicated blocks:   1 (100.0 %)
 Over-replicated blocks:    0 (0.0 %)

数据块id为

代码语言:javascript
代码运行次数:0
运行
复制
blk_1074920015

2.使用fsck命令显示块状态,输出如下

hdfs fsck -blockId blk_1074920015

代码语言:javascript
代码运行次数:0
运行
复制
Block Id: blk_1074920015
Block belongs to: /gavial/data/OB/AIR/PM25/201709/01/15_00.json
No. of Expected Replica: 3
No. of live Replica: 3
No. of excess Replica: 0
No. of stale Replica: 0
No. of decommission Replica: 0
No. of corrupted Replica: 0
Block replica on datanode/rack: datanode-5/default-rack is HEALTHY
Block replica on datanode/rack: datanode-1/default-rack is HEALTHY

显然,该块只属于一个文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21274334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档