Hadoop中的文件存储、块大小和输入拆分

Hadoop中的文件存储、块大小和输入拆分,hadoop,mapreduce,hdfs,input-split,Hadoop,Mapreduce,Hdfs,Input Split,考虑以下情况: 我有4个文件,每个6 MBHDFS块大小为64 MB 1block将保存所有这些文件。它有一些额外的空间。如果添加了新文件,它将在此处适应 现在,当通过input format为Map reduce作业计算input splits时,(split size通常是HDFS块大小,因此可以通过减少寻道时间将每个分割加载到内存中进行处理。) 此处进行了多少次输入拆分: 这是因为所有4个文件都包含在块中吗 还是每个文件都有一个输入拆分 这是如何确定的?如果我想将所有文件作为单个输入拆分进

考虑以下情况:

我有4个文件,每个6 MB<代码>HDFS块大小为64 MB

1
block
将保存所有这些文件。它有一些额外的空间。如果添加了新文件,它将在此处适应

现在,当通过
input format
Map reduce
作业计算
input splits
时,(
split size
通常是
HDFS块大小
,因此可以通过减少寻道时间将每个分割加载到内存中进行处理。)

此处进行了多少次输入拆分:

  • 这是因为所有4个文件都包含在
    块中吗

  • 还是每个文件都有一个输入拆分

  • 这是如何确定的?如果我想将所有文件作为单个输入拆分进行处理,该怎么办

  • 1块将保存所有这些文件。它有一些额外的空间。如果添加了新文件,它将在此处容纳[…]是否是一个文件,因为所有4个文件都包含在一个块中

    你实际上有4个街区。所有文件是否都可以放入单个块并不重要

    编辑: 块属于文件,而不是相反。HDFS设计用于存储几乎肯定会大于块大小的大型文件。每个块存储多个文件会给namenode增加不必要的复杂性

    • 文件不是
      blk0001
      ,而是
      blk0001{file start->file end}
    • 如何附加到文件
    • 删除文件时会发生什么情况
    • 等等
    还是每个文件都有一个输入拆分

    仍然是每个文件1个分割

    这是如何确定的

    如果我想将所有文件作为单个输入拆分进行处理,该怎么办

    使用不同的输入格式,例如
    MultipleFileInputFormat

  • 每个文件将存储在一个单独的块中,但文件不会占用底层存储的完整块,它将使用更少的物理存储

  • HDFS不适用于较小的文件-


  • 请解释一下。为什么使用4个块,而不是一个可以容纳所有四个文件的块?你能帮我写这篇文章吗: