在包含空格的路径中使用jar设置mapreduce.job.jar

8zzbczxx  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(426)

我正在尝试编写一个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?

mepcadol

mepcadol1#

是否尝试用“\”转义空格字符?
在您的示例中:/home/my\name/workspace/mymapreduce.jar

相关问题