我正在尝试编写一个mapreduce程序,其中一个步骤是设置mapreduce.job.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。
那么有没有办法在包含空间的路径中设置mapreducejar呢?否则,除了使用 file.toURI().toURL().toURL().toString()之外,我如何设置 mapreduce.job.jar?
您是否尝试过使用"\"转义空格字符?
在您的示例中:/home/my\ name/workspace/myMapReduce.jar