1

我使用命令从远程机器 ( windows ) 运行 hadoop map red 作业

java -jar XMLDriver.jar -files junkwords.txt -libjars XMLInputFormat.jar

并将作业提交到运行 hadoop 的 linux 机器上。

我知道这个分发缓存文件将被发送到我远程机器上的 HDFS(我是对的吗????)

但在映射器代码中,我无法使用 api 检索此文件名

Path[] cacheFiles  = DistributedCache.getLocalCacheFiles(conf); 

fileName = cacheFiles[0].toString();

我应该使用DistributedCache.addCacheFile()api 和 symlinks api 吗?

另外,我尝试将junkwords.txt文件手动复制到 hdfs 并在命令行中指定 hdfs 路径为

java -jar XMLDriver.jar -files /users/junkwords.txt -libjars XMLInputFormat.jar

FileNotFoundException当我在本地 Windows 机器上运行作业时,这会引发。

当使用 -file 命令行选项从远程机器传递时访问映射器中的分布式缓存文件的解决方案是什么?

4

1 回答 1

0
DistributedCache.addCacheFile()

您确实应该在设置作业时将文件添加到分布式缓存中。

于 2013-10-25T11:13:13.497 回答