17

Java API を使用して HDFS 内でファイルを移動したいと考えています。これを行う方法がわかりません。FileSystem クラスは、ローカル ファイル システムとの間の移動のみを許可するようです..しかし、それらを HDFS に保持し、そこに移動したいと考えています。

基本的なものが欠けていますか?私がそれを行うことができる唯一の方法は、入力ストリームから読み込んで書き戻すことです...そして古いコピーを削除します(うん)。

ありがとう

4

4 に答える 4

24

FileSystem.rename()を使用します。

public abstract boolean rename(Path src, Path dst) throws IOException

Pathの名前srcを Path に変更しdstます。ローカル fs またはリモート DFS で実行できます。

パラメータ:
src -
dst名前を変更するパス - 名前を変更した後の新しいパス
戻り値:
true名前の変更が成功した場合
スロー:
IOException - 失敗した場合

于 2011-04-01T00:47:01.207 に答える
1

FileUtilts replaceFile も目的を解決すると思います。 http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/fs/FileUtil.html#replaceFile(java.io.File , java.io.File)

于 2011-06-28T23:47:12.513 に答える