HDfs shellコマンド要約


FS Shell
ファイルシステム(FS)Shellコマンドを呼び出すにはbin/hadoop fsの形式を使用します.すべてのFS shellコマンドはURIパスをパラメータとして使用します.URI形式はscheme://authority/path.HDFSファイルシステム、schemeはhdfs、ローカルファイルシステム、schemeはfileです.ここでschemeパラメータとauthorityパラメータはオプションで、指定を付けない場合は、構成で指定したデフォルトのschemeが使用されます.HDFSファイルやディレクトリ、例えば/parent/childはhdfs://namenode:namenodeport/parent/child、またはより簡単な/parent/child(プロファイルのデフォルト値がnamenode:namenodeportであると仮定します).ほとんどのFS Shellコマンドの動作は、対応するUnix Shellコマンドと似ていますが、各コマンドの使用の詳細については以下で説明します.エラー情報はstderrに出力され、他の情報はstdoutに出力されます.
ファイルの表示
cat
使用方法:hadoop fs-cat URI[URI...]
パス指定ファイルの内容をstdoutに出力します.
例:
hadoop fs -cat hdfs://host1:port1/file1 hdfs://host2:port2/file2
hadoop fs -cat file:///file3 /user/hadoop/file4

アクセス権
getfacl
使用方法:hadoop fs-getfacl[-R]
権限情報の表示
例:
hadoop fs -getfacl-R hdfs://host:port/user/hadoop/dir1

getfattr
使用方法:hadoop fs-getfattr[-R]{-n name|-d}[-e en]
その他の情報を表示
例:
hadoop fs -getfattr -R -n user hdfs://host:port/user/hadoop/dir1

getmerge
使用方法:hadoop fs-getmerge[-nl]
hdfsのファイルをローカルにマージする
例:
hdfs dfs-getmerge hdfs://host:port/user/hadoop/dir1.txt localFile

setfacl
使用方法:hadoop fs-setfacl[-R][{-b|-k}{-m|-x}]|[-set]
コマンドラインにACL(アクセス制御リスト)を設定するために使用します.コマンドラインでは、一連のコマンドが一連のファイル名に従います.
前提:dfs.namenode.acls.enabled=true
例:
hadoop fs -setfacl -m user:root:rwx /  root   /      rwx  

setfattr
使用方法:hadoop fs-setfattr{-n name[-v value]|-x name}
拡張プロパティのnameとvalueをファイルまたはディレクトリに設定します.
chgrp
使用方法:hadoop fs-chgrp[-R]GROUP URI[URI...]
ファイルが属するグループを変更します.-Rを使用すると、変更はディレクトリ構造の下で再帰的に行われます.コマンドの使用者は、ファイルの所有者またはスーパーユーザーである必要があります.
例:
hadoop fs -chgrp -R user test.txt

chmod
使用方法:hadoop fs-chmod[-R]URI[URI...]
ファイルの権限を変更します.-Rを使用すると、変更はディレクトリ構造の下で再帰的に行われます.コマンドの使用者は、ファイルの所有者またはスーパーユーザーである必要があります.
例:
hadoop fs -chmod -R user test.txt

chown
使用方法:hadoop fs-chown[-R][OWNER][:[GROUP]]URI[URI]
ファイルの所有者を変更します.-Rを使用すると、変更はディレクトリ構造の下で再帰的に行われます.コマンドの使用者はスーパーユーザーでなければなりません.
例:
hadoop fs -chown -R user test.txt

コピーコピー
cp
使用方法:hadoop fs-cp URI[URI...]
ファイルをソースパスからターゲットパスにコピーします.このコマンドでは、ターゲットパスがディレクトリである必要がある複数のソースパスを許可します.例:
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2
hadoop fs -cp /user/hadoop/file1 /user/hadoop/file2 /user/hadoop/dir


copyFromLocal
使用方法:hadoop fs-copyFromLocal URI
ソースパスがローカルファイルであることを制限する以外は(ローカルのみ)、[put]コマンドと似ています.
例:
hadoop fs -copyFromLocal localPath


copyToLocal
使用方法:hadoop fs-copyToLocal[-ignorecrc][-crc]URI
ターゲットパスがローカルファイルであることを制限する以外は(ローカルのみ)、[get]コマンドと同様です.
例:
hadoop fs -copyToLocal localPath


ディレクトリ・サイズの表示
du
使用方法:hadoop fs-du URI[URI...]
ディレクトリ内のすべてのファイルのサイズを表示するか、1つのファイルのみを指定した場合に表示します.例:
hadoop fs -du /user/hadoop/dir1 /user/hadoop/file1 hdfs://host:port/user/hadoop/dir1


dus
使用方法:hadoop fs-dus
ファイルのサイズを表示します.
例:
hadoop fs -dus hdfsPath


ごみ箱を空にする
expunge
使用方法:hadoop fs-expunge
回収所を空にする.詳細については、HDFS設計ドキュメントを参照してください.
例:
hadoop fs -expunge


ファイルを取る
get
使用方法:hadoop fs-get[-ignorecrc][-crc]
ファイルをローカルファイルシステムにコピーします.-ignorecrcオプションを使用して、CRCチェックアウトに失敗したファイルをコピーできます.-crcオプションを使用して、ファイルおよびCRC情報をコピーします.
例:
hadoop fs -get /user/hadoop/file localfile
hadoop fs -get hdfs://host:port/user/hadoop/file localfile


getmerge
使用方法:hadoop fs-getmerge[addnl]
ソースディレクトリとターゲットファイルを入力として受け入れ、ソースディレクトリ内のすべてのファイルをコストターゲットファイルに接続します.addnlはオプションで、各ファイルの最後に改行を追加することを指定します.
例:
hadoop fs -getmerge HdfsPaht localFile


ディレクトリの表示
ls
使用方法:hadoop fs-ls
ファイルの場合は、ファイル名ファイルサイズ変更日変更時間権限ユーザIDグループIDがディレクトリの場合は、Unixのように直接サブファイルのリストが返されます.ディレクトリ返却リストの情報は、ディレクトリ名変更日変更時間権限ユーザIDグループID
例:
hadoop fs -ls /user/hadoop/file1 /user/hadoop/file2 hdfs://host:port/user/hadoop/dir1 /nonexistentfile


lsr
使用方法:hadoop fs-lsr lsコマンドの再帰バージョン.Unixのls-Rに似ています.
hadoop fs -lsr hdfspath


ファイルの作成
mkdir
使用方法:hadoop fs-mkdir
パスで指定したuriをパラメータとして受け入れ、これらのディレクトリを作成します.その動作はUnixのmkdir-pに似ており、パス内の各レベルの親ディレクトリが作成されます.
例:
hadoop fs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hadoop fs -mkdir hdfs://host1:port1/user/hadoop/dir hdfs://host2:port2/user/hadoop/dir


touchz
使用方法:hadoop fs-touchz URI[URI...]
0バイトの空のファイルを作成します.
例:
hadoop fs -touchz test


移動
mv
使用方法:hadoop fs-mv URI[URI...]
ファイルをソースパスからターゲットパスに移動します.このコマンドでは、ターゲットパスがディレクトリである必要がある複数のソースパスを許可します.異なるファイルシステム間でファイルを移動することはできません.例:
hadoop fs -mv /user/hadoop/file1 /user/hadoop/file2
hadoop fs -mv hdfs://host:port/file1 hdfs://host:port/file2 hdfs://host:port/file3 hdfs://host:port/dir1


moveFromLocal
使用方法:dfs-moveFromLocal
「not implemented」情報を出力します.
例:
hadoop fs -moveFromLocal hdfspath localpath


hdfsにアップロード
put
使用方法:hadoop fs-put...
ローカルファイルシステムから1つ以上のソースパスをターゲットファイルシステムにコピーします.標準入力から入力を読み込んでターゲットファイルシステムに書き込むこともサポートされます.
hadoop fs -put localfile /user/hadoop/hadoopfile
hadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -put localfile hdfs://host:port/hadoop/hadoopfile
hadoop fs -put hdfs://host:port/hadoop/hadoopfile


標準入力から入力を読み込みます.
削除
rm
使用方法:hadoop fs-rm URI[URI...]
指定したファイルを削除します.空でないディレクトリとファイルのみを削除します.rmrコマンドを参照して、再帰削除について説明してください.例:
hadoop fs -rm hdfs://host:port/file /user/hadoop/emptydir


rmdir
使用方法:hadoop fs-rmdir[–ignore-fail-on-non-empty]...
空のディレクトリを削除
例:
hadoop fs -rmdir  /


rmr
使用方法:hadoop fs-rmr URI[URI...]
deleteの再帰バージョン.例:
hadoop fs -rmr /user/hadoop/dir
hadoop fs -rmr hdfs://host:port/user/hadoop/dir


レプリカ係数の変更
setrep
使用方法:hadoop fs-setrep[-R]
ファイルのコピー係数を変更します.-Rオプションは、ディレクトリ内のすべてのファイルのコピー係数を再帰的に変更するために使用します.
例:
hadoop fs -setrep -w 3 -R /user/hadoop/dir1


stat
使用方法:hadoop fs-stat URI[URI...]
指定したパスの統計を返します.
例:
hadoop fs -stat path


ファイルの最後の表示
tail
使用方法:hadoop fs-tail[-f]URI
ファイルの末尾の1 Kバイトの内容をstdoutに出力します.-fオプションをサポートし、動作はUnixと一致します.
例:
hadoop fs -tail pathname


ファイルのチェック
test
使用方法:hadoop fs-test-[ezd]URI
オプション:-eファイルが存在するかどうかをチェックします.存在する場合は0を返します.-zファイルが0バイトであるかどうかをチェックします.存在する場合は0を返します.-dパスがディレクトリの場合は1を返します.そうでない場合は0を返します.
例:
hadoop fs -test -e filename


text
使用方法:hadoop fs-text
ソースファイルをテキスト形式で出力します.許可される形式はzipとTextRecordInputStreamです.
オプション:-eファイルが存在するかどうかをチェックします.存在する場合は0を返します.-zファイルが0バイトであるかどうかをチェックします.存在する場合は0を返します.-dパスがディレクトリの場合は1を返します.そうでない場合は0を返します.
例:
hadoop fs -text t.zip


appendToFile
使用方法:hadoop fs-appendToFile...
HDFSシステムに1つ以上のファイルを追加し、標準入力から読み取り、ターゲットファイルシステムの要約に追加します.
例:
hadoop fs -appendToFile localPath hdfs://host:port/user/hadoop/dir 


checksum
使用方法:hadoop fs-checksum URI
Datanodeはデータを実際に格納する前にデータのチェックサム(checksumの初期値?)を検証します.クライアントがデータの読み込み中にデータエラーを検出した場合は、ChecksumExceptionを放出します.
例:
hadoop fs -checksum hdfs://host:port/user/hadoop/dir 


count
使用方法:hadoop fs-count[-q]
統計hdfs対応パスの下のディレクトリの個数、ファイルの個数、ファイルの合計サイズはディレクトリの個数、ファイルの個数、ファイルの合計サイズとして表示され、入力パス
hadoop fs -count hdfs://host:port/user/hadoop/dir 


スナップショット操作
createSnapshot
使用方法:hadoop fs-createSnapshot[]
スナップショット・ディレクトリのスナップショットを作成します.この操作にはsnaphottableディレクトリの所有者権限が必要です.
deleteSnapshot
使用方法:hadoop fs-deleteSnapshot
スナップショット・ディレクトリからスナップショットを削除します.この操作にはsnaphottableディレクトリの所有者権限が必要です.コマンド
renameSnapshot
使用方法:hadoop fs-renameSnapshot
1つのsnapshot(スナップショット)は、すべてのファイルシステム、またはあるディレクトリのある時点でのミラーです.
ディスクサイズの表示
df
使用方法:hadoop fs-df
ルート・ディレクトリのディスク領域のサイズの表示
find
使用方法:hadoop fs-find......
一致するすべてのファイルを見つけます
-name pattern大文字と小文字を区別せず、大文字と小文字に敏感-iname pattern大文字と小文字に敏感.-print印刷.-print 0印刷は1行です.
例:
hadoop fs -find hdfs://host:port/user/hadoop/dir  -name sample -print