首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么HDFS中的块如此大?

为什么HDFS中的块如此大?
EN

Stack Overflow用户
提问于 2014-03-12 13:31:36
回答 3查看 5K关注 0票数 22

有人能解释一下这个计算并给出一个清晰的解释吗?

快速计算表明,如果搜索时间约为10 ms,传输速率为100 MB/s,则要使搜索时间占传输时间的1%,就需要使块大小保持在100 MB左右。缺省值实际上是64 MB,尽管许多HDFS安装使用128 MB块。随着新一代磁盘驱动器传输速度的增长,这一数字将继续向上修正。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-12 13:49:23

一个块将作为一个连续的信息块存储在磁盘上,这意味着完全读取它的总时间是定位它的时间(搜索时间)+读取其内容的时间,而无需再执行任何查找,即sizeOfTheBlock / transferRate = transferTime

如果我们保持seekTime / transferTime的比率很小(在文本中接近.01 ),这意味着我们从磁盘读取数据的速度几乎与磁盘施加的物理限制一样快,并且花费的查找信息的时间最少。

这一点很重要,因为在映射减少作业中,我们通常遍历(读取)整个数据集(由HDFS文件或文件夹或文件夹集表示)并对其执行逻辑,因此,由于我们无论如何都必须花费完整的transferTime才能将所有数据从磁盘中取出,让我们尽量减少大块进行查找和读取所花费的时间,因此数据块的大小很大。

在更传统的磁盘访问软件中,我们通常不会每次读取整个数据集,所以我们宁愿花更多的时间在较小的块上进行大量的搜索,而不是浪费太多的时间传输我们不需要的数据。

票数 34
EN

Stack Overflow用户

发布于 2015-12-15 23:30:11

由于100 mb被划分为10个块,所以必须执行10次查找,每个文件的传输速率为( 10 /100)mb/s。(10 10*10)+(10/100 10/s)*10= 1.1秒。至少大于1.01。

票数 2
EN

Stack Overflow用户

发布于 2015-11-25 06:09:26

由于100 is 被划分为10个块,所以每个块只有 10 is ,因为它是HDFS。那么应该是10*10ms + 10mb/(100Mb/s) = 0.1s+ 0.1s = 0.2s,甚至更短的时间。

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

https://stackoverflow.com/questions/22353122

复制
相关文章

相似问题

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