是否将文件划分为数据块以存储在HDFS中? [英] are files divided into blocks for storing in HDFS?

查看:40
本文介绍了是否将文件划分为数据块以存储在HDFS中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我了解到HDFS中的挡路系统是位于底层文件系统之上的逻辑分区。 但是,当我发出cat命令时,如何检索文件。

假设我有一个1 GB的文件。我的默认HDFS挡路大小为64 MB。

我发出以下命令:

hadoop -fs copyFromLocal my1GBfile.db input/data/

上述命令将文件my1GBfile.db从我的本地计算机复制到HDFS:

中的input/data目录

我有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆