hadoop的分布式缓存允许开发人员将小文件添加到mr上下文中,这些文件可用于在map或reduce阶段获取附加信息。但是,我没有找到一种方法在一个 Partitioner
. 我需要一个小文件的内容(早期mr作业的输出)在自定义 Partitioner
确定钥匙如何送到减速器。
不幸的是,我找不到任何有用的文档,我唯一的想法是目前有点“黑客”的方法,这涉及到将文件的内容序列化为base64字符串并将其放入 Configuration
. Configuration
可以通过让分区器实现 Configurable
. 虽然文件对于这种方法来说足够小(大约50kb),但我认为分布式缓存更适合这种情况。
编辑:我找到了另一种我认为稍微好一点的方法。因为我需要在分区器中访问的文件在hdfs上,所以我将其完全限定为 URI
进入 Configuration
. 在我的 Partitioner
的 setConf
方法,然后我可以通过 new Path(new URI(conf.get("some.file.key")))
在老师的帮助下阅读 Configuration
. 不过还是很刻薄。。。
暂无答案!
目前还没有任何答案,快来回答吧!