在hadoop HDFS中存储大文件?

sam*_*ers 1 java hadoop mapreduce bigdata hdfs

我需要在HDFS上存储大约10TB的大文件.我需要了解的是HDFS将如何存储此文件.比如,群集的复制因子是3,我有一个10节点群集,每个节点上有超过10 TB的磁盘空间,即总群集容量超过100TB.

现在,HDFS随机选择三个节点并将文件存储在这三个节点上.那么这就像听起来一样简单.请确认?

或者HDFS将文件分割 - 比如说每个10T分割1TB,然后将每个分割存储在随机选择的3个节点上.分裂是可能的,如果是,则是启用它的配置方面.如果HDFS必须拆分二进制文件或文本文件 - 它是如何拆分的.只需按字节.

fac*_*cha 6

是的,它会拆分文件(默认情况下为128mb块).每个块将存储在3个随机节点上.因此,您将在10个节点上均匀分布30TB的数据.

  • 名称节点管理关于文件已被分割成的所有不同块的元数据,其中每个块(在哪个数据节点上)以及制作副本的位置.可以配置块大小和复制因子.拆分文件由您用来将文件写入HDFS的客户端完成.如果单个行大于块大​​小,则该行仍将被拆分并放置在两个块中.请参阅此链接,其中详细解释了它 - http://stackoverflow.com/questions/14291170/how-does-hadoop-process-records-split-across-block-boundaries (2认同)