我正在尝试编写一个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?
最佳答案
您是否尝试用'\'转义空格字符?
在您的示例中:
/ home / my \名称/workspace/myMapReduce.jar
关于hadoop - 在包含空间的路径中使用jar设置mapreduce.job.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812613/