DSEFSコマンドライン・ツール

DSEファイル・システム(DSEFS)のオプションとコマンド引数。

DSEFSの機能では、ファイルのアップロード、ダウンロード、移動、および削除、ディレクトリーの作成、DSEFSステータスの確認などの操作がサポートされています。

DSEFSコマンドは論理データ・センターでのみ使用できます。DSEFSではセキュアなクラスターとセキュアでないクラスターのどちらも使用できます。「DSEFS認証」を参照してください。

DSEFSファイル・システムとは、対話型コマンドライン・シェル、dseコマンドの一部、REST APIなど複数のモードで対話できます。

対話型DSEFSコマンドライン・シェル

対話型コマンドライン・シェルを使用するには:
アクション コマンドライン
DSEFSシェルを起動する
$ dse fs dsefs / >
DSEFSプロンプトに、DSEFS上の現在の作業ディレクトリーが表示されます。DSEFSを起動する現在のローカル作業ディレクトリーは、ローカル・ファイルを検索するために使用されるデフォルトのディレクトリーです。
指定したホストを優先してDSEFSシェルを起動する
dse fs --prefer-contact-points -h 10.0.0.2,10.0.0.5

DSEFSコマンドを発行する際に、--prefer-contact-points-hオプションを併用すると、近接度に関係なく、指定したホストが優先されます。指定したホストが使用可能な限り、DSEFSはクラスター内の他のDSEFSノードに切り替わりません。

--prefer-contact-pointsオプションを使用しない場合、-hオプションを使用してコンタクト・ポイントを指定しても、DSEFSは使用可能で最も近いDSEFSノードに自動的に切り替わります。

DSEFSコマンド・リスト全体を表示する
dsefs / > help
DSEFSコマンドのヘルプを表示する
dsefs / > help dsefs_command
DSEFSシェル・コマンドにコメントを追加する #文字を使用します。#文字の後ろのコメントはすべて無視されます。
dsefs / > get archive.tgz local_archive.tgz #retrieve the archive
DSEFSシェルを終了する Ctrl+Dキーを押すか、「exit」と入力します。

DSEFSシェルのロギングの構成

DSEFSシェル・ログ・ファイル.dsefs-shell.logのデフォルトの場所は、ユーザーのホーム・ディレクトリーです。デフォルトのログ・レベルはINFOです。DSEFSシェルのロギングを構成するには、installation_location/resources/dse/conf/logback-dsefs-shell.xmlファイルを編集します。

dseコマンドラインでの使用

以下のように、DSEFSコマンドの前にdseを付けます。
$ 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の場合、複数の方法でユーザー認証情報を指定できます。「認証対応クラスターへの接続」を参照してください。DSEFSを使用した認証については、「DSEFS認証」を参照してください。

複数のコマンドの実行

DSEFSは、1行で複数のコマンドを実行できます。コマンドと引数を引用符で囲みます。各コマンドがDSEFSによって個別に実行されます。

dse fs 'cat file1 file2 file3 file4' 'ls dir1'

DSEFSコマンドのオプション

以下のDSEFSコマンドと引数がサポートされています。
DSEFSコマンド 説明とコマンド引数
append source destination ローカル・ファイルをリモート・ファイルに追加書き込みします。
  • sourceは、データを読み取るローカル・ファイルのパスです。
  • destinationは、ファイルの追加書き込み先のリモート・ファイルのパスです。
cat file_or_files ファイルを連結して、標準出力で出力します。
  • file_or_filesは、標準出力で出力するDSEFS内の1つまたは複数のファイルです。複数のファイルは、スペースで区切ります。
cd directory DSEFSのリモート作業ディレクトリーを変更します。
  • directoryは、変更先のリモート・ディレクトリーです。
  • ..は親ディレクトリーです。
DSEFSプロンプトに、DSEFS内の現在の作業ディレクトリーが示されます。
  • dsefs / >はデフォルトのディレクトリーです。
  • dsefs /dir2 >は現在の作業ディレクトリーdir2です。
chgrp group path ファイルまたはディレクトリーのグループの所有権を変更します。
  • groupは新しいグループ名です。
  • pathは、グループが変更されるファイルまたはディレクトリーです。
chmod octal permission mode path ファイルまたはディレクトリーのパーミッションを変更します。
  • octal permission modeは、所有者、グループ、その他のパーミッション・モードの8進数表現です。
  • pathは、パーミッションが変更されるファイルまたはディレクトリーです。
chown [options] path ファイルまたはディレクトリーの所有権やグループの所有権を変更します。
  • -u, --user usernameは新しい所有者のユーザー名です。
  • -g, --group groupは新しいグループの所有者の名前です。
  • pathは、所有権が変更されるファイルまたはディレクトリーです。
cp [options] source destination 1つのファイル・システム内または2つのファイル・システム間でファイルをコピーします。コピー先のパスがDSEFSとは異なるファイル・システムを指している場合、ブロックのサイズと冗長性のオプションは無視されます。
  • -o, --overwriteは、コピー先のファイルを上書きします(存在する場合)。
  • -b, --block-size valueは、推奨されるブロック・サイズ(バイト)です。
  • -n, --redundancy-factor num_nodesは、DSEFSで作成するファイル・データのレプリカの数です。この冗長性係数は、データベースのキースペースのレプリケーション係数に似ていますが、より詳細に設定できます。この値は、データ喪失を生じないまま障害の発生が許容されるノードの数よりも1大きい値に設定します。たとえば、2つのノードまで障害が発生しても許容される場合は、この値を3に設定します。単純なレプリケーションでは、レプリケーション係数と同じ値を使用できます。
  • sourceは、コピー対象のコピー元のファイルです。
  • sourceは、作成されるコピー先のファイルです。
df [options] DSEFSファイル・システムのステータスとディスク領域の使用量をリストします。
  • -hは、人間が判読可能な形式でサイズをリストします。サイズは、有効な3桁に四捨五入され、以下の単位を使用して表されます。
    • K(キロバイト = 1024バイト)
    • M(メガバイト = 1024K)
    • G(ギガバイト = 1024M)
    • T(テラバイト = 1024G)
    このオプションを指定しない場合、サイズはバイト単位で出力されます。
exit DSEFSシェル・クライアントを終了します。Ctrl+Dキーを押してシェルを終了することもできます。
fsck ファイル・システム整合性チェックを実行して、ファイル・システム・エラーをリペアします。
get source destination DSEFSリモート・ファイル・システムからファイルを取得し、そのファイルをローカル・ファイル・システムにコピーします。
  • sourceは、コピー元のDSEFSリモート・ファイルのパスです。
  • destinationは、作成するローカル・ファイルのパスです。
ls [options] [file_system_entry_or_entries] 現在の作業ディレクトリーのDSEFSファイル・システム・エントリー(ファイルまたはディレクトリー)をリストします。
  • -Rは、サブディレクトリーを再帰的にリストします。
  • -lは、メタデータを含む長いリスト形式を使用します。
  • -hは、人間が判読可能な形式でサイズをリストします。サイズは、有効な3桁に四捨五入され、以下の単位を使用して表されます。
    • K(キロバイト = 1024バイト)
    • M(メガバイト = 1024K)
    • G(ギガバイト = 1024M)
    • T(テラバイト = 1024G)
    このオプションを指定しない場合、サイズはバイト単位で出力されます。
  • -1は、出力するカラムの数を1つに制限します。したがって、各行に1ファイルずつ出力されます。このオプションを使用すると、外部ツールで解析しやすい出力が得られます。
  • file_system_entry_or_entriesは、その内容をリストする1つまたは複数のディレクトリーです。
mkdir [options] dir_or_dirs 1つまたは複数の新しいディレクトリーを作成します。
  • -pは、必要に応じて親ディレクトリーを作成します。
  • -b bytesは、このディレクトリーに格納されるファイルの推奨ブロック・サイズです。
  • -c, --compression-encoder valueは、圧縮に使用するエンコーダー名です。DSEには圧縮エンコーダーlz4が同梱されています。
  • -n, --redundancy-factor num_nodesは、DSEFSで作成するファイル・データのレプリカの数です。この冗長性係数は、データベースのキースペースのレプリケーション係数に似ていますが、より詳細に設定できます。この値は、データ喪失を生じないまま障害の発生が許容されるノードの数よりも1大きい値に設定します。たとえば、2つのノードまで障害が発生しても許容される場合は、この値を3に設定します。単純なレプリケーションでは、レプリケーション係数と同じ値を使用できます。
  • -m, --permission-mode valueは、所有者、グループ、およびその他のパーミッション・モードの8進数表現です。
  • dir_or_dirsは、作成する1つまたは複数のディレクトリーです。
mv source destination ファイルまたはディレクトリーを移動するか、名前を変更します。
  • sourceは、移動対象のDSEFSファイル・システム・エントリーのパスです。
  • DSEFSの移動先のパス:
    • destinationは、移動対象のファイルまたはディレクトリーの名前を含む移動先のフルパスです。
    • destination/は、移動先のフルパスです。移動先がスラッシュ(/)で終わる場合は、元のファイルまたはディレクトリーの名前が保持されます。
put [options] source destination ローカル・ファイルをDSEFSにコピーします。
  • -o, --overwriteは、コピー先のファイルを上書きします(存在する場合)。
  • -b, --block-size bytesは、推奨されるブロック・サイズです(バイト)。
  • -c, --compression-encoder valueは、圧縮に使用するエンコーダー名です。DSEには圧縮エンコーダーlz4が同梱されています。
  • -n, --redundancy-factor num_nodesは、DSEFSで作成するファイル・データのレプリカの数です。この冗長性係数は、データベースのキースペースのレプリケーション係数に似ていますが、より詳細に設定できます。この値は、データ喪失を生じないまま障害の発生が許容されるノードの数よりも1大きい値に設定します。たとえば、2つのノードまで障害が発生しても許容される場合は、この値を3に設定します。単純なレプリケーションでは、レプリケーション係数と同じ値を使用できます。
  • -f, --compression-frame-size valueは、推奨されるフレーム・サイズです(バイト)。フレームは、圧縮の対象です。フレームが大きくなると、高圧縮率になる可能性が高くなります。多くの場合、デフォルト値131072バイトで十分です。
  • -m, --permission-mode valueは、所有者、グループ、およびその他のパーミッション・モードの8進数表現です。
  • sourceは、コピー元のローカル・ファイルのパスです。
  • destinationは、DSEFSに作成されるコピー先のファイルのパスです。
pwd [path] 現在のファイル・システムまたは指定されたパスの作業ディレクトリーを出力します。
  • pathは、パスのルートにあるファイル・システムの現在の作業ディレクトリーです。
realpath [options] path 指定されたファイルまたはディレクトリーの解決済みの絶対パスを出力します。
  • -e, --canonicalize-existingを指定する場合は、パスのすべてのコンポーネントが存在する必要があります。
  • -m, --canonicalize-missingを指定する場合は、パスのコンポーネントが存在する必要がないか、ディレクトリーである必要はありません。
  • pathは、解決するパスです。
rename path name 現在の場所にあるファイルまたはディレクトリーの名前を変更します。
  • pathは、名前を変更するファイル・システム ・エントリーのパスです。
  • nameは、ファイル・システム・エントリーの新しい名前です。
rm [-r] path ファイルまたはディレクトリーを削除します。
  • -rは、ファイルまたはディレクトリーを再帰的に削除するように指定します。
  • -vは、実行内容を説明します。
  • pathは、削除対象のファイル・システム・エントリーのパスです。
rmdir path 1つまたは複数の空のディレクトリーを削除します。
  • pathは、削除対象のディレクトリーのパスです。
stat file_or_dir [-v] ファイル・システム・エントリーのステータスを表示します。
  • file_or_dirはファイル・システムです。
  • -vは、ファイル・ステータスに関する詳細な情報を出力します。
truncate file ファイルを0バイトにTRUNCATEします。ファイルのメタデータを保持する場合に便利です。
  • fileは、TRUNCATEの対象のファイルです。
umount [-f] locations ファイル・システム・ストレージの場所をマウント解除します。
  • -fは、その場所が使用できない場合でも、強制的にマウント解除します。
  • locationsは、マウント解除する場所の複数のUUIDのUUID(汎用一意識別子)です。dfコマンドからUUIDを取得します。

DSEFSノードの削除

DSEクラスターからDSEFSを実行中のノードを削除する場合、DSEFSデータ・セット内の適切な正確さを確保するために追加の手順が必要です。

  1. 削除するノードと同じデータ・センターのノードから、DSEFSシェルを起動します。
    $ dse fs
  2. 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
  3. リストで削除するノードを探し、LocationカラムにあるそのノードのUUID値を書き留めます。
  4. ノードが稼働している場合は、コマンドumount UUIDを使用してDSEFSからそのノードをマウント解除します。
  5. ノードが稼働していない場合は(ハードウェア障害の後など)、コマンドumount -f UUIDを使用してDSEFSから強制的にそのノードをマウント解除します。
  6. ノードの削除の通常の手順を続行します。

DSEFSシェルを使用してこれらのコマンドを実行すると、ローカルbluefileがリモートDSEFS greenfileに配置されます。
dsefs / > ls -l dsefs / > put file:/bluefile greenfile
DSEFSディレクトリー内の新しいファイルを表示するには、以下のように入力します。
dsefs / > ls -l Type Permission Owner Group Length Modified Name file rwxrwxrwx none none 17 2016-05-11 09:34:26+0000 greenfile
dseコマンドを使用すると、これらのコマンドによってtest2ディレクトリーが作成され、ローカルREADME.mdファイルが新しいDSEFSディレクトリーにアップロードされます。
$ 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コマンドを使用できます。JVMの起動とDSEFSとの接続/切断が1回になるので、時間が短縮されます。例を次に示します。
$ dse fs "mkdir / test2" "put README.md /test/README.md"