Java API を使用して HDFS 内でファイルを移動したいと考えています。これを行う方法がわかりません。FileSystem クラスは、ローカル ファイル システムとの間の移動のみを許可するようです..しかし、それらを HDFS に保持し、そこに移動したいと考えています。
基本的なものが欠けていますか?私がそれを行うことができる唯一の方法は、入力ストリームから読み込んで書き戻すことです...そして古いコピーを削除します(うん)。
ありがとう
FileSystem.rename()を使用します。
public abstract boolean rename(Path src, Path dst) throws IOException
Pathの名前
src
を Path に変更しdst
ます。ローカル fs またはリモート DFS で実行できます。パラメータ:
src
-
dst
名前を変更するパス - 名前を変更した後の新しいパス
戻り値:
true
名前の変更が成功した場合
スロー:
IOException - 失敗した場合
FileUtilts replaceFile も目的を解決すると思います。 http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/fs/FileUtil.html#replaceFile(java.io.File , java.io.File)