database - HDFS 中的数据 block 大小,为什么是 64MB?

标签 database hadoop mapreduce block hdfs

HDFS/Hadoop 的默认数据 block 大小为 64MB。磁盘中的 block 大小一般为4KB。

64MB block 大小是什么意思? ->是不是说从磁盘读取的最小单位是64MB?

如果是,这样做的好处是什么?-> 易于连续访问 HDFS 中的大文件?

我们可以使用磁盘的原始 4KB block 大小来做同样的事情吗?

最佳答案

What does 64MB block size mean?

block 大小是文件系统可以存储的最小数据单元。如果您存储一个 1k 或 60Mb 的文件,它将占用一个 block 。超过 64Mb 边界后,您需要第二个 block 。

If yes, what is the advantage of doing that?

HDFS 旨在处理大文件。假设您有一个 1000Mb 的文件。对于 4k block 大小,您必须发出 256,000 个请求才能获取该文件(每个 block 1 个请求)。在 HDFS 中,这些请求通过网络传输并带来大量开销。每个请求都必须由名称节点处理,以确定可以在何处找到该 block 。那是很多流量!如果您使用 64Mb block ,请求数量将减少到 16,从而显着降低名称节点上的开销和负载成本。

关于database - HDFS 中的数据 block 大小,为什么是 64MB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473772/

相关文章:

php - 将简单列表服务器端/差异存储到本地存储

java - JDBC 连接池 - 简单的设置和库

hadoop - 如何检查 hdfs 目录中的总文件大小

java - MapReduce 是否需要与 HDFS 一起使用

java - 仅为特定表启用 PostgreSQL 日志记录

mySQL - 每个页面的新表?

hadoop - MLCP 导入 java.lang.UnsatisfiedLinkError

java - java代码调用hadoop文件系统时出现异常

java - java.lang.ArrayIndexOutOfBoundsException:MapReduce

hadoop - 重复的任务被杀死