我正在尝试在 Amazon EMR 上运行一个简单的程序,它将目录中的文本文件转换为序列文件。该程序在我的本地机器上运行良好,但在 Amazon EMR 上出现以下错误。有人可以告诉我如何摆脱这个错误。
Configuration conf=new Configuration();
System.out.println("fs.default.name : - " + conf.get("fs.default.name"));
Path input=new Path(URI.create(args[0]));
Path output=new Path(URI.create(args[1]));
ToolRunner.run(new SequenceFilesFromDirectory(),new String[]{
"--input",input.toString(),
"--output",output.toString(),
"--overwrite",
"--method","mapreduce"});
谢谢你。
线程“main”java.lang.IllegalArgumentException 中的异常:此文件系统对象 (hdfs://172.31.4.175:9000) 不支持访问请求路径.. 您可能在应该调用 FileSystem.get(conf)调用 FileSystem.get(uri, conf) 来获取支持您的路径的文件系统。
在 org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:384) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:129) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus (DistributedFileSystem.java:513) 在 org.apache.mahout.text.SequenceFilesFromDirectory.runMapReduce(SequenceFilesFromDirectory.java:140) 在 org.apache.mahout.text.SequenceFilesFromDirectory.run(SequenceFilesFromDirectory.java:89) 在 org.apache。 hadoop.util.ToolRunner.run(ToolRunner.java:65) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) at com.gifts.text.SeqFileDirectory.main(SeqFileDirectory.java:36)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl。在 org.apache.hadoop.util.RunJar.main(RunJar.java:187) 的 java.lang.reflect.Method.invoke(Method.java:606) 处调用(DelegatingMethodAccessorImpl.java:43)*