首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mapper中处理输入块的哪个副本?

问在mapper中处理输入块的哪个副本?
EN

Stack Overflow用户
提问于 2015-09-14 18:57:09
回答 1查看 63关注 0票数 0

我为用Java语言编写的MapReduce作业创建了一个简单的I/O监视系统。因此,在作业的Map阶段,我希望记录有关已处理数据的位置的信息。

映射阶段的MapReduce作业处理输入拆分,该拆分由HDFS中的几个文件块组成。该块有几个(通常是3个)副本。

在Mapper中读取时,是否有可能知道这些块的哪些副本已被使用?换句话说,我可以获得Mapper读取的本地文件系统中特定文件的完整路径吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-14 21:57:55

在HDFS中,数据块被复制,namenode没有任何关于哪个是副本的信息。它使用一个块来根据网络延迟和该特定机器中的负载执行操作。

HDFS中的文件被分成多个块。hdfs中文件的完整路径存储为namenode元数据。每个块由块id标识。

hdfs-site.xml中的属性dfs.namenode.name.dir的值提供了存储所有块的位置。

根据您的需求,如果您想要获取本地文件系统中存储块的路径,读取此属性的值,通过读取namenode元数据来识别块id,那么您将能够以编程方式在本地文件系统中找到引用hdfs文件的确切块。

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

https://stackoverflow.com/questions/32563072

复制
相关文章

相似问题

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