hadoop 中一个大文件 在hdfs中是如何存储的

例如,我有一个5GB的大文件,我写到hdfs中,我看权威指南的意思,分成多个数据包,形成一个数据队列,然后依次写入datanode列表。如果有三个datanode,先传给... 例如,我有一个5GB的大文件,我写到hdfs中,我看权威指南的意思,分成多个数据包,形成一个数据队列,然后依次写入datanode列表。如果有三个datanode,先传给第一个datanode,然后由第一个传给第二个,第二个传给第三个,如果是这样不是每个节点都有5GB的文件了吗?
如果是这样,我一个客户端在读取hdfs的时候,namenode找到一个最优的datanode,那我要读取的文件不是只能在其中一个datanode上去读取了吗,除非文件特别大,超过datanode的存储。那这个分布式的效果如何体现出来呢?有点没有弄懂,请大侠给讲解一下。
展开
 我来答
吾乃白鹤
推荐于2017-05-17 · 超过15用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:29.5万
展开全部
文件是按照块来存储的,比如配置的每块大小为64M,那么5G的文件,会分成5*1024/64=80块,每个块会在不同节点上存多份。你上面说的依次写入datanode,是指将每个块依次写入。
读取的时候,也是一块一块来读的,当然,这些都已经被HDFS的客户端封装好了,你看到就是在读一个文件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式