Amazon Elastic MapReduce:来自FileSystem的异常

时间:2010-04-22 23:35:01

标签: amazon-s3 mapreduce

我使用ruby客户端运行我的应用程序: ruby elastic-mapreduce -j j-20PEKMT9BRSUC --jar s3n://sakae55/lib/edu.cit.som.jar --main-class edu.cit.som.hadoop.SOMDriver --arg s3n:// sakae55 / repository / input / ecoli / --arg s3n:// sakae55 / repository / output / ecoli / pl / --arg s3n://sakae55/repository/data/ecoli/som.txt

然后,我看到以下错误:

java.lang.IllegalArgumentException:此文件系统对象(file:///)不支持访问请求路径'hdfs:// i -10-195-207-230.ec2.internal:9000 / mnt / var / lib / hadoop / tmp / mapred / system / job_201004221221_0017 / job.jar'你可能叫过Fi eSystem.get(conf)应该调用FileSystem.get(uri,conf)来获取支持路径的文件系统。         在org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:320)         at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:52)         在org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:416)         在org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:259)         在org.apache.hadoop.fs.FileSystem.isDirectory(FileSystem.java:676)         在org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:200)         在org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1184)         在org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1160)         在org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1132)         在org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:662)         在org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:729)         在org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1026)         在edu.cit.som.hadoop.SOMDriver.runIteration(SOMDriver.java:106)         在edu.cit.som.hadoop.SOMDriver.train(SOMDriver.java:69)         在edu.cit.som.hadoop.SOMDriver.run(SOMDriver.java:52)         在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)         在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)         在edu.cit.som.hadoop.SOMDriver.main(SOMDriver.java:36)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)         在java.lang.reflect.Method.invoke(Method.java:597)         在org.apache.hadoop.util.RunJar.main(RunJar.java:155)         在org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)         在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)         在org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)         在org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)

我不确定为什么错误引用“file:///”,即使我传递的所有参数都不使用模式。

1 个答案:

答案 0 :(得分:1)

事实证明,JobConf对象的重用导致了这个问题。更改代码以为每次迭代创建新实例解决了这个问题。