Hadoop HDFS—一个大文件或几个小文件,大小与块大小相同

Hadoop HDFS—一个大文件或几个小文件,大小与块大小相同,hadoop,hdfs,bigdata,Hadoop,Hdfs,Bigdata,因此,我在理解如何存储大型文件时遇到了一些问题。 例如,我的HDFS中的块大小是128MB,我有一个1GB的文件 我知道保存小于块大小的文件不是最佳做法,我理解原因 但是,对于我的1GB文件,我应该如何处理大文件?我应该保存1个文件还是8个128MB的文件,为什么?你可以用1GB存储1个文件。Hadoop将自动将该文件存储在8个块中。 Hadoop是为更大的文件而不是更小的文件设计的。请注意,块是hadoop中的物理存储 因为您没有提到集群中的拆分大小,所以我假设它是128MB。分割是你所依赖的

因此,我在理解如何存储大型文件时遇到了一些问题。 例如,我的HDFS中的块大小是128MB,我有一个1GB的文件

我知道保存小于块大小的文件不是最佳做法,我理解原因


但是,对于我的1GB文件,我应该如何处理大文件?我应该保存1个文件还是8个128MB的文件,为什么?你可以用1GB存储1个文件。Hadoop将自动将该文件存储在8个块中。 Hadoop是为更大的文件而不是更小的文件设计的。请注意,块是hadoop中的物理存储

因为您没有提到集群中的拆分大小,所以我假设它是128MB。分割是你所依赖的东西。因此,如果您在128个分区上处理1 GB文件,将调用8个映射器(每个分区上有1个映射器)。 如果存储8个文件,每个文件大小为128 mb。对于维护这8个文件的信息,Namenode上会有不必要的开销。在8个文件的情况下,性能可能或多或少与1 GB文件相似,但在1 GB文件具有8个块的情况下,性能肯定会更好

不要与hadoop中的块混淆,它们和其他文件系统一样只是存储单元。无论文件有多大,Hadoop都会自动管理存储,并将文件分块存储。在i/o操作中,存储小文件是不必要的