我使用命令从远程机器 ( 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 命令行选项从远程机器传递时访问映射器中的分布式缓存文件的解决方案是什么?