我使用以下命令从远程计算机(windows)运行hadoop map red作业
java -jar XMLDriver.jar -files junkwords.txt -libjars XMLInputFormat.jar
并将作业提交到运行hadoop的linux box。
我知道这个分发缓存文件将被发送到我的远程盒子上的hdfs(我说的对吗??)
但是在mapper代码中,我无法使用api检索这个文件名
Path[] cacheFiles = DistributedCache.getLocalCacheFiles(conf);
fileName = cacheFiles[0].toString();
我应该用吗 DistributedCache.addCacheFile()
api和symlinks api,如果是的话wht是我需要提到的参数uri,因为我不知道hadoop在linux上会把文件复制到哪里?
还有,我试着复制 junkwords.txt
手动将文件复制到hdfs,并在命令行中指定hdfs路径
java -jar XMLDriver.jar -files /users/junkwords.txt -libjars XMLInputFormat.jar
这是一个 FileNotFoundException
当我在本地windows计算机上运行作业时。
使用-file命令行选项从远程计算机传递时,访问mapper中分布式缓存文件的解决方案是什么?
1条答案
按热度按时间gcxthw6b1#
在设置作业时,确实应该将文件添加到分布式缓存中。