我正在尝试编写一个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?
答案 0 :(得分:0)
您是否尝试使用' \'?
转义空格字符在你的例子中: / home / my \ name / workspace / myMapReduce.jar