首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop如何拆分和合并其输出数据?

问Hadoop如何拆分和合并其输出数据?
EN

Stack Overflow用户
提问于 2012-07-10 03:13:01
回答 2查看 622关注 0票数 0

我认为我的问题最好用一个例子来解释。假设您正在HDFS上存储一个映像。该映像足够大,在HDFS上被分成四个独立的较小文件。当您执行返回该图像的操作时,Hadoop是否会返回这4个可以组合成原始图像的小文件?或者Hadoop会自动将这4个小文件重新组合成原始文件吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-10 09:40:37

Hadoop分布式文件系统(HDFS)将每个文件存储在一个或多个数据块中(每个数据块被复制一次或多次)。

对于每个文件,您可以配置文件块大小和复制因子(如果未提供,则使用默认值)。

当您执行任何基于文件的操作时,您正在处理数据流,名称节点是将文件路径映射到块及其位置(数据节点)的中央存储库。

举个例子,假设你有一个32MB的文件块大小和一个50MB的文件-这将被分成两个块(32MB和18MB)。如果配置的文件复制因子为3,则NameNode将尝试并确保将每个数据块复制到集群中的3个数据节点。

当您尝试读取此文件时,将返回一个FSInputStream,与大多数输入流一样,您可以查找文件中的某个字节位置。DFSClient将你从细节中抽象出来,但它知道一个特定的字节偏移量,这与哪个块相关,并无缝地获取字节(甚至当你在块边界之间移动时)。

因此,总结并解决您的问题-对于从HDFS读取的客户端来说,它看起来像一个连续的输入流,但它实际上是根据需要拼接在一起的4个数据块

票数 1
EN

Stack Overflow用户

发布于 2012-07-10 03:26:32

我不确定这个示例是如何正常使用Hadoop的。

但是,如果您的结果是一个大文件,那么它将作为较小的子文件存储在HDFS中。如果您通过HDFS文件系统操作检索它,那么它将作为单个逻辑文件返回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11401532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档