是否将文件划分为数据块以存储在HDFS中? [英] are files divided into blocks for storing in HDFS?
本文介绍了是否将文件划分为数据块以存储在HDFS中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我了解到HDFS中的挡路系统是位于底层文件系统之上的逻辑分区。
但是,当我发出cat
命令时,如何检索文件。
假设我有一个1 GB的文件。我的默认HDFS
挡路大小为64 MB。
我发出以下命令:
hadoop -fs copyFromLocal my1GBfile.db input/data/
上述命令将文件my1GBfile.db
从我的本地计算机复制到HDFS:
我有16个块要复制和复制(1 GB/64 MB~16)。
如果我有8个datanodes
,单个DataNode可能没有所有块来重组文件。
当我发出以下命令时
hadoop -fs cat input/data/my1GBfile.db | head
现在发生了什么?
文件是如何重构的?虽然块只是逻辑分区,但是1 GB的文件是如何物理存储的呢?它存储在HDFS上。是否每个DataNode都获得文件的某些物理部分。 因此,通过将输入的1 GB文件拆分成64MB的块,我们可能会在创纪录的级别(比如在行间)中断一些东西。如何处理此问题?
我签入了我的DataNode,确实看到了一个blk_1073741825
,当在编辑器中打开它时,它实际上会显示文件的内容。
那么是不是生成的文件块不符合逻辑,而是发生了真实的partition
数据?
请帮忙澄清这一点
推荐答案
块实际上就是数据节点上的文件。当您在HDFS中cat
一个文件时,您的机器将直接从它们各自的数据节点流式传输这些块,并在本地重新构建整个文件。
这篇关于是否将文件划分为数据块以存储在HDFS中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文