对于下面的示例,hadoop中生成了多少块?

t1rydlwq  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(282)

假设我的hdfs块大小是64 mb。
我有4个文件:
文件a:64mb*3+2MB;
文件b:62MB;
文件a应该有4个块,每个块有64 mb,一个块有2 mb。
文件b应该有一个62 mb的块。
所以总共应该有6个街区
仅仅因为在文件a的一个块中有“空闲”空间,而文件a只存储2MB,所以文件b不会附加到同一块中。对吗?
我看过一些教程,他们说块中的“空闲”空间被利用了。

j2cgzkjk

j2cgzkjk1#

文件a-4块。3个64字节,1个2mb
文件b-1块。62 mb大小。
如果复制为3,则总共有(4+1)*3=15个块。
他们在视频中的意思似乎是,hdfs(datanodes)将再次利用本地文件系统中的空间,因为它构建在本地文件系统的顶部。如果块占用的空间小于64mb,则文件系统中的剩余空间将不被占用。它可以被其他文件的其他块使用。

sczxawaw

sczxawaw2#

假设你在这里,块大小是64MB,
现在您有3个文件,每个64 mb。对于这些信息,每个块将有150kb的元数据信息,这些信息将生成并保存在namenode中。即使块大小为1 mb、50 mb或64 mb,元数据信息也是相同的
在场景文件a中:64*3=3块
2mb=1块
文件A总计=3+1=4块。
文件b=62 mb=1块
内部工作原理:
我们假设,如果存储了50MB的文件,那么剩余的14MB(64-50=14MB)就会被浪费掉。但事实并非如此。您应该了解,即使文件大于64MB,元数据信息也将是相同的。其余14MB将由元数据大小相同的另一个块使用。

xesrikrc

xesrikrc3#

正确,将有6个街区。所有这一切意味着一个2mb的块在物理上只占用datanode硬盘上的2mb,而不是一个完全的块大小,这将是一种空间浪费。

相关问题