【问题标题】:how HDFS allocates storage on diskHDFS 如何在磁盘上分配存储
【发布时间】:2014-07-12 08:55:58
【问题描述】:

我很想知道HDFS是如何在Data节点上预留和分配存储空间的。

假设我在其中一个 Data 节点中有 500GB 硬盘,其中 400GB 分配给 /data 分区,据说 hadoop 就在上面。

在这里,hadoop 守护进程将占用 400GB 中的多少空间来存储输入拆分(块)。

是提前保留所有存储空间还是按需分配?

并且还想知道在设置集群时格式化名称节点是否与此有关。

非常感谢...

【问题讨论】:

  • 我看不出在写入任何内容之前预先分配所有磁盘空间听起来很有用。你为什么不试试呢?

标签: hadoop hdfs


【解决方案1】:

属性 dfs.datanode.data.dir 确定 DFS 数据节点应在本地文件系统上存储其块的位置。如果这是一个逗号分隔的目录列表,那么数据将存储在所有命名的目录中,通常在不同的设备上。不存在的目录将被忽略。

DataNode 上的每个块副本由本地本地文件系统中的两个文件表示。第一个文件包含数据本身,第二个文件记录块的元数据,包括数据的校验和和生成标记。数据文件的大小等于块的实际长度,并且不需要额外的空间来将其四舍五入到传统文件系统中的标称块大小。因此,如果一个块是半满的,它只需要本地驱动器上满块的一半空间。

名称节点格式步骤在此链接中进行了说明,您可以参考此Link

【讨论】:

    猜你喜欢
    • 2011-06-08
    • 2012-05-13
    • 2016-12-04
    • 2011-01-13
    • 1970-01-01
    • 2021-02-12
    • 2012-12-24
    • 2016-08-20
    相关资源
    最近更新 更多