hadoop - HDFS 的 128M 默认块大小如何最小化 seekTime/transferTime 比率
问题描述
我对这个问题困惑了很长时间。与 os 文件系统的块大小或磁盘块相比,为什么 HDFS 使用如此大的块大小有很多解释。我理解解释说这将降低 NameNode 元数据管理的流量和存储要求。我一直很困惑的是关于“最小化 seekTime /transferTime 比率”的解释。正如以下帖子所述。 为什么 HDFS 中的块这么大?
我知道我的问题可能看起来很愚蠢,因为我不是 CS 学位背景,所以我对现代计算机的组成等主题缺乏相当多的知识。请原谅我。
我的困惑主要是由于以下考虑引起的:
一个块将作为一条连续的信息存储在磁盘上,这意味着完整读取它的总时间是定位它的时间(寻道时间)+ 读取其内容而不进行任何寻道的时间
- 是不是整个 HDFS Block 会连续存储在磁盘上?
- 搜索何时发生?它不会在磁盘上的每个块发生一次?
- 如果它是连续存储的,那么我们可以通过一次查找读取整个块吗?
我认为我的怀疑是有根据的,因为大型 HDFS 块可以减少查找/传输时间比率的结论只有在满足所有三个条件时才有效。否则,结论对我来说没有意义。希望任何人都可以告诉我在哪里可以找到可靠的事实来证明我的猜测。在此先感谢。
解决方案
推荐阅读
- swift - 协议“数字”只能用作通用约束,因为它具有 Self 或关联的类型要求
- amazon-ec2 - 使用 cloud-init 和实例标签在 EC2 上设置主机名?
- azure-pipelines - Azure 发布管道 - 需要特定数量的批准
- generator - 制作“小型”生成器的解决方案,当您单击名为 generate 的按钮时,它会输出图像和一些文本
- python - python输出十进制而不是整数中的平均sql查询
- flutter - Flutter 用 RichText 填空
- python-3.x - 未使用 ANTLR 词法分析器令牌
- bash - 用于标记 mp3 文件的 Bash 脚本
- ruby - 在 Nokogiri 中使用 Xpath 转义下划线
- logging - Kubernetes 上的 Airflow 无法获取日志