我正在尝试编写一个mapreduce程序,其中一个步骤是用一个文件设置mapreduce.job.jar。如果文件位于不包含空间的路径中,则程序工作正常。但是路径包含空间,路径是编码的,我会得到一个no-jar-found错误。
假设作业jar在/home/myname/workspace/mymapreduce.jar下,当我用这个路径设置mapreduce.job.jar时,就可以了。
Configuration conf = job.getConfiguration();
conf.set("mapreduce.job.jar", file.toURI().toURL().toString());
但是如果路径是/home/my name/workspace/mymapreduce.jar(“我的”和“名称”之间的空格),则
file.toURI().toURL().toString()
将路径编码到/home/my%20name/workspace/mymapreduce.jar中,这会使mapreduce程序失败,因为在这个目录下没有这样的jar。
那么有没有办法在包含空格的路径中设置mapreducejar呢?或者,除了使用file.touri().tourl().tostring()之外,如何设置mapreduce.job.jar?
1条答案
按热度按时间mepcadol1#
是否尝试用“\”转义空格字符?
在您的示例中:/home/my\name/workspace/mymapreduce.jar