2016-03-24 12 views
0

Fileオブジェクトを処理するコードを作成中です。実際のファイルをHDFSに保存したいのですが、Fileオブジェクトとして取得したいと思います。 私はpathToFile(Hadoop LocalFileSystem)というメソッドを見つけましたが、これは私が望むものとまったく同じですが、動作していないようです。 ほとんど同じトピック(How to convert a Hadoop Path object into a Java File object)の別の質問がありますが、解決されていません。JavaファイルへのパスをHadoopにする方法

実際にこのメソッドを使用し、HadoopパスをJavaファイルに変換した人はいますか?

fyi:私はインターネット上のすべてを検索し、pathToFileが使用され、効率的に動作するコードの塊でも見つからなかった。私のコードで

String uri = args[0]; //give the hdsf path as argument 
Configuration conf = new Configuration(); //create a Configuration obj 
Path pathOfFile = new Path(uri); //create a Hadoop Path obj 
LocalFileSystem myFS = FileSystem.getLocal(conf); //LocalFileSystem creation 
File theFile = myFS.pathToFile(pathOfFile); // using pathToFile 
+0

とは/ etc/Hadoopの/ confのを置き換えるに役立つ可能性がtheFile nullではないでしょうか?もしそうなら、theFile.getAbsolutePath()はあなたの設定と比べて何ですか? –

+0

theFileは私が作成したいものですが、myFS.pathToFileは動作していないようです! "スレッドの例外"メイン "java.lang.IllegalArgumentException:間違ったFS:..."というエラーが発生しました 私が与えているargs [0]は "hdfs:// localhost:54310/user/giorgos/test"です。 txt "と私はそれがHDFSに格納されていることを知っており、HDFSパスとして動作します。 –

答えて

0

おそらく、コードのこの作品は、ローカル設定

 
Configuration configuration = new Configuration(); 
configuration.addResource("/etc/hadoop/conf/core-site.xml"); 
configuration.addResource("/etc/hadoop/conf/core-site.xml"); 
configuration.addResource("/etc/hadoop/conf/hdfs-site.xml"); 
FileSystem hdfsFileSystem = FileSystem.get(configuration); 
Path pathOfFile = new Path("/user/giorgos/test.txt")); 
関連する問題