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

时间:2015-06-12 21:43:59

标签: hadoop mapreduce cloudera yarn hortonworks-data-platform

我正在尝试编写一个mapreduce程序,其中一个步骤是使用文件设置mapreduce.job.jar。它的文件位于不包含空格的路径中,程序运行正常。但路径包含空格,路径被编码,我将得到一个没有发现jar的错误。

说工作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('my'和'name'之间的空格),

file.toURI().toURL().toString()

将路径编码到/home/my%20name/workspace/myMapReduce.jar中,这导致mapreduce程序失败,因为此目录下没有这样的jar。

那么有没有办法在包含空间的路径中设置mapreduce jar?或者,除了使用file.toURI()。toURL()。toString()之外,我怎样才能设置mapreduce.job.jar?

1 个答案:

答案 0 :(得分:0)

您是否尝试使用' \'?

转义空格字符

在你的例子中:  / home / my \ name / workspace / myMapReduce.jar