DSEFSコマンドライン・ツール
DSEファイル・システム(DSEFS)のオプションとコマンド引数。
DSEFSの機能では、ファイルのアップロード、ダウンロード、移動、および削除、ディレクトリーの作成、DSEFSステータスの確認などの操作がサポートされています。
DSEFSコマンドは論理データ・センターでのみ使用できます。DSEFSではセキュアなクラスターとセキュアでないクラスターのどちらも使用できます。「DSEFS認証」を参照してください。
- 対話型コマンドライン・シェル。
DSEFSを起動して、DSE FSシェルを起動するには:
dse fs
- dseコマンドの一部。
- REST API。
DSEFSシェルのロギングの構成
DSEFSシェル・ログ・ファイル.dsefs-shell.logのデフォルトの場所は、ユーザーのホーム・ディレクトリーです。デフォルトのログ・レベルはINFOです。DSEFSシェルのロギングを構成するには、installation_location/resources/dse/conf/logback-dsefs-shell.xmlファイルを編集します。
dseコマンドラインでの使用
dse fs
を付けます。dse [dse_auth_credentials] fs dsefs_command [options]
dse -u user1 -p mypassword fs "df -h"
任意指定のコマンド引数は、角かっこで囲まれています。たとえば、[dse_auth_credentials]や[-R]などです。
変数値はイタリック体になっています。たとえば、directoryや[subcommand]などです。
DSEFSシェルでローカル・ファイル・システムを使用する
パスにfile:
というプレフィックスを付けることで、ローカル・ファイル・システム内のファイルを参照できます。たとえば、以下のコマンドを実行すると、システム・ルート・ディレクトリー内のファイルがリストされます。
dsefs dsefs://127.0.0.1:5598/ > ls file:/ bin cdrom dev home lib32 lost+found mnt proc run srv tmp var initrd.img.old vmlinuz.old boot data etc lib lib64 media opt root sbin sys usr initrd.img vmlinuz
ローカル・ファイル・システムで多くの後続の操作を実行する場合は、まず現在の作業ディレクトリーをfile:
または任意のローカル・ファイル・システム・パスに変更します。
dsefs dsefs://127.0.0.1:5598/ > cd file: dsefs file:/home/user1/path/to/local/files > ls conf src target build.sbt dsefs file:/home/user1/path/to/local/files > cd .. dsefs file:/home/user1/path/to/local >
DSEFSシェルは、各ファイル・システムの最後の作業ディレクトリーを個別に記憶します。前のDSEFSディレクトリーに戻るには、以下のように入力します。
dsefs file:/home/user1/path/to/local/files > cd dsefs: dsefs dsefs://127.0.0.1:5598/ >
前のローカル・ディレクトリーに戻るには、以下のように入力します。
dsefs dsefs://127.0.0.1:5598/ > cd file: dsefs file:/home/user1/path/to/local/files >
ファイル・システムの最後の作業ディレクトリーに対する相対パスを参照するには、相対パスにdsefs:
またはfile:
のプレフィックスを付けます。次のセッションで、ディレクトリー/home/user1
内にディレクトリーnew_directory
が作成されます。
dsefs dsefs://127.0.0.1:5598/ > cd file:/home/user1 dsefs file:/home/user1 > cd dsefs: dsefs dsefs://127.0.0.1:5598/ > mkdir file:new_directory dsefs dsefs://127.0.0.1:5598/ > realpath file:new_directory file:/home/user1/new_directory dsefs dsefs://127.0.0.1:5598/ > stat file:new_directory DIRECTORY file:/home/user1/new_directory: Owner user1 Group user1 Permission rwxr-xr-x Created 2017-01-15 13:10:06+0200 Modified 2017-01-15 13:10:06+0200 Accessed 2017-01-15 13:10:06+0200 Size 4096
2つの異なるファイル・システム間でファイルをコピーするには、パス内でファイル・システムのプレフィックスを明示的に指定してcp
コマンドを使用することもできます。
dsefs file:/home/user1/test > cp dsefs:archive.tgz another-archive-copy.tgz dsefs file:/home/user1/test > ls another-archive-copy.tgz archive-copy.tgz archive.tgz
認証
$ dse dse_auth_credentials
の場合、複数の方法でユーザー認証情報を指定できます。「DSEツールによる認証情報の提供」を参照してください。DSEFSを使用した認証については、「DSEFS認証」を参照してください。
ワイルドカードのサポート
一部のDSEFSコマンドは、パス引数のワイルドカード・パターン拡張をサポートしています。ワイルドカードを含んでいるパス引数は、ワイルドカード・パターンに一致するパスのセットに対するメソッドの呼び出し前に拡張されて、指定されたメソッドは、拡張されたパスごとに呼び出されます。
たとえば、以下のディレクトリー・ツリーがあるとします。
dirA |--dirB |--file1 |--file2
stat dirA/*
コマンドを与えると、透過的にstat dirA/dirB
、stat dirA/file1
、およびstat dirA/file2
の3つの呼び出しに変換されます。
DSEFSは、以下のワイルドカード・パターンをサポートしています。
*
は、stat dirA/*
の例のように、任意のファイル・システム・エントリー(ファイルまたはディレクトリー)名と一致します。?
は、ファイル・システム・エントリー名の任意の単一の文字と一致します。たとえば、stat dirA/dir?
はdirA/dirB
と一致します。[]
は、角かっこで囲まれた任意の文字と一致します。たとえば、stat dirA/file[0123]
はdirA/file1
およびdirA/file2
と一致します。{}
は、角かっこで囲まれ、,
で区切られた任意の文字の並びと一致します。たとえば、stat dirA/{dirB,file2}
はdirA/dirB
およびdirA/file2
と一致します。
単一のパスでは、ワイルドカード・パターンの数に制限はありません。
DSEFSを使用した認証については、「DSEFS認証」を参照してください。
複数のコマンドの実行
DSEFSは、1行で複数のコマンドを実行できます。コマンドと引数を引用符で囲みます。各コマンドがDSEFSによって個別に実行されます。
dse fs 'cat file1 file2 file3 file4' 'ls dir1'
同期の強制
ファイルの書き込みを確認する前に、DSEFSは、デフォルトでストレージ・デバイスへのファイルのすべてのブロックの書き込みを強制します。この動作は、mkdir
、put
、およびcp
コマンドを使用してDSEFSシェルでファイルまたはディレクトリを作成する場合、 --no-force-sync
および--force-fsync
フラグで制御できます。force/no-force動作は、指定されていない場合、親ディレクトリーから継承されます。たとえば、--no-force-sync
を使用してディレクトリーが作成された場合、ファイル作成中に--force-fsync
が明示的に設定されない限り、--no-force-sync
を使用してすべてのファイルが作成されます。
強制同期をオフにすると、永続性を犠牲にしてレイテンシーとパフォーマンスを向上させます。ストレージ・デバイスにデータを書き込む前に電力損失が生じた場合、データが失われる可能性があります。データ・センターに信頼性の高いバックアップ電源を備えていて、すべてのレプリカの障害が生じにくい場合、またはファイルのデータを失う可能性があることを理解している場合にのみ、強制同期をオフにします。
Hadoop SYNC_BLOCK
フラグには、DSEFSの--force-sync
と同じ効果があります。Hadoop LAZY_PERSIST
フラグには、DSEFSの--no-force-sync
と同じ効果があります。
DSEFSノードの削除
DSEクラスターからDSEFSを実行中のノードを削除する場合、DSEFSデータ・セット内の適切な正確さを確保するために追加の手順が必要です。
- 削除するノードと同じデータ・センターのノードから、DSEFSシェルを起動します。
dse fs
df
コマンドを使用して現在のDSEFSノードを表示します。dsefs > df
Location Status DC Rack Host Address Port Directory Used Free Reserved 144e587c-11b1-4d74-80f7-dc5e0c744aca up GraphAnalytics rack1 node1.example.com 10.200.179.38 5598 /var/lib/dsefs/data 0 29289783296 5368709120 98ca0435-fb36-4344-b5b1-8d776d35c7d6 up GraphAnalytics rack1 node2.example.com 10.200.179.39 5598 /var/lib/dsefs/data 0 29302099968 5368709120
- リストで削除するノードを探し、LocationカラムにあるそのノードのUUID値を書き留めます。
- ノードが稼働している場合は、コマンド
umount UUID
を使用してDSEFSからそのノードをマウント解除します。 - ノードが稼働していない場合は(ハードウェア障害の後など)、コマンド
umount -f UUID
を使用してDSEFSから強制的にそのノードをマウント解除します。 - すべてのブロックがレプリケートされるように、
fsck
コマンドを使用して、ファイル・システム・チェックを実行します。dsefs > fsck
- ノードの削除の通常の手順を続行します。
fsck
を実行せずに元のノードが削除されるため、元のノード内のデータが恒久的に失われる場合があります。古いDSEFS ディレクトリーの削除
DSEFSデータ・ディレクトリーを変更しても、古いディレクトリーが表示されたままの場合、umountオプションを使用してディレクトリーを削除します。
- スーパーユーザー特権を持つロールとしてDSEFSシェルを起動します。
dse fs
df
コマンドを使用して現在のDSEFSノードを表示します。dsefs > df
- リストで削除するノードを探し、LocationカラムにあるそのディレクトリーのUUID値を書き留めます。
- コマンド
umount UUID
を使用してDSEFSからそのノードをマウント解除します。dsefs > umount 98ca0435-fb36-4344-b5b1-8d776d35c7d6
- すべてのブロックがレプリケートされるように、
fsck
コマンドを使用して、ファイル・システム・チェックを実行します。dsefs > fsck
ファイル・システム・チェックの結果がIOException
の場合は、クラスター内のすべてのノードが実行中であることを確認します。
例
dsefs / > ls -l dsefs / > put file:/bluefile greenfileDSEFSディレクトリー内の新しいファイルを表示するには、以下のように入力します。
dsefs / > ls -l Type Permission Owner Group Length Modified Name file rwxrwxrwx none none 17 2016-05-11 09:34:26+0000 greenfile
dse fs "mkdir /test2" && dse fs "put README.md /test2/README.md"新しいディレクトリー・リストを表示するには、以下のように入力します。
dse fs "ls -l /test2"
Type Permission Owner Group Length Modified Name
file rwxrwxrwx none none 3382 2016-03-07 23:20:34+0000 README.md
dse fs "mkdir / test2" "put README.md /test/README.md"
--no-force-sync
フラグを使用する方法と、stat
を使用して--force-sync
フラグの状態を確認する方法を示しています。これらのコマンドは、DSEFSシェル内から実行されます。dsefs> mkdir --no-force-sync /tmp dsefs> put file:some-file.dat /tmp/file.tmp dsefs> stat /tmp/file.tmp FILE dsefs://127.0.0.1:5598/tmp/file.tmp Owner none Group none Permission rwxrwxrwx Created 2017-03-06 17:54:35+0100 Modified 2017-03-06 17:54:35+0100 Accessed 2017-03-06 17:54:35+0100 Size 1674 Block size 67108864 Redundancy 3 Compressed false Encrypted false Forces sync false Comment