ディレクトリ内のテキストファイルをシーケンスファイルに変換する簡単なプログラムを 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"});
ありがとうございました。
スレッド「メイン」の例外 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) で org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79) で com.gifts.text.SeqFileDirectory.main(SeqFileDirectory.java:36) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で、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) で invoke(DelegatingMethodAccessorImpl.java:43)*