プライマリ・コンテンツに移動

Oracle® Big Data Applianceオーナーズ・ガイド リリース4 (4.6) E79718-01 |
| 目次 | 索引

前 | 次 |

# 14 クラスタ全体でのdcliユーティリティを使用したコマンドの実行

`dcli`ユーティリティは、Oracle Big Data Appliance上のサーバー・グループ全体でコマンドを実行して出力を返します。`dcli`は、「Oracle Big Data Applianceのフル・ラックまたはスタータ・ラックの構成」で使用します。

この章の内容は次のとおりです。

- dcliユーティリティの概要

- dcliの構文

- dcliの戻り値

- dcliの例

## 14.1 dcliユーティリティの概要

`dcli`ユーティリティは、管理(eth0)インタフェースを使用して複数のOracle Big Data Applianceサーバーに対してコマンドを実行し、接続を確立します。任意のサーバーからユーティリティを実行できます。

### 14.1.1 パスワードなしSSHの設定

`dcli`ユーティリティでは、ローカル・サーバーとすべてのターゲット・サーバー間にパスワードなしセキュア・シェル(SSH)が必要です。ローカル・サーバーで`dcli`ユーティリティを実行すると、`dcli`で指定したコマンドがターゲット・サーバーで実行されます。

2つのスクリプト(`setup-root-ssh`および`remove-root-ssh`)によって、Oracle Big Data ApplianceでSSHを簡単に使用できます。これらのスクリプトは、`dcli`でも使用される2つのオプションを受け入れます。

- `-C`: Hadoopクラスタのすべてのサーバーをターゲットに設定します。

- `-g`: ユーザー定義のサーバー・セットをターゲットに設定します。

これらのオプションの詳細は、表14-1を参照してください。

注意:

Mammothユーティリティにはリモート`root`アクセスが必要です。ただし、Oracle Big Data Applianceでは標準の操作では不要です。

rootのパスワードなしSSHを設定するには、次の手順を設定します。

1. PuTTYなどのユーティリティを使用してOracle Big Data Applianceサーバーに接続します。SSHの接続タイプを選択します。

2. `root`としてログインします。

3. ラック全体で`root`のパスワードなしSSHを設定します。

       setup-root-ssh

   各サーバーで「ssh key added」というメッセージが表示されます。

4. これで、パスワードを入力せずに、ラックの任意のサーバーですべての`SSH`コマンドを実行できます。`dcli`コマンドに加え、`scp`を使用してサーバー間でファイルをコピーできます。

5. `root`からパスワードなしSSHを削除するには、次のようにします。

       remove-root-ssh

関連項目:

`setup-root-ssh`および`remove-root-ssh`のすべてのパラメータに関する説明。

### 14.1.2 dcliの基本的な使用方法

この項では、`dcli`コマンドのいくつかの基本オプションを示します。オプションの完全なリストは、表14-1を参照してください。

#### 14.1.2.1 ヘルプの表示

`dcli`のヘルプ・ページを表示するには、`-h`または`--help`オプションを使用して`dcli`コマンドを入力します。オプションなしで`dcli`コマンドを入力すると、コマンドの説明を表示できます。

#### 14.1.2.2 ターゲット・サーバーの識別

コマンドラインまたはファイルでコマンドを実行する場所となるサーバーを識別できます。デフォルト・ターゲット・サーバーのリストを確認するには、`-t`オプションを使用します。現在のコマンドでターゲット・サーバーを変更するには、表14-1に記載されている`-c`または`-g`オプションを使用します。

まとめて管理するサーバーのグループを含むファイルを手動で作成できます。たとえば、サーバー5から18は、サーバー1から4のような特別な機能を持っていないため、まとめて管理できます。

#### 14.1.2.3 コマンドの指定

通常は、ターゲット・サーバーで実行するためにコマンドラインでコマンドを指定します。ただし、よく一緒に使用する一連のコマンドや、複雑な構文のコマンドに対応するため、コマンド・ファイルを作成することもできます。表14-1の`-x`オプションを参照してください。

また、`-f`オプションを使用すると、ファイルを実行せずにターゲット・サーバーにコピーできます。

#### 14.1.2.4 出力レベルの制御

表示する情報は、`-v`オプションを使用して多くしたり、`-n`オプションを使用して少なくしたりできます。また、`--maxlines`オプションを使用して返される行数を制限することや、`-r`オプションを使用して一致する文字列を置き換えることもできます。

次に、Linux `date`コマンドの単純な例を使用して、様々な出力レベルの例を示します。

注意:

1つのサーバー(node07)のみの出力を示します。これらの例の構文によって、すべてのサーバーで`date`コマンドが実行されます。

これはデフォルトの出力で、サーバーの後に日付が表示されます。

    # dcli date
    bda1node07-adm.example.com: Tue Feb 14 10:22:31 PST 2012

最小限の出力では、実行が完了すると`OK`が返されます。

    # dcli -n date
    OK: ['bda1node07.example.com']

詳細出力では、コマンドが実行されたときの設定の詳細情報が表示されます。

    dcli -v dateoptions.nodes: Noneoptions.destfile: Noneoptions.file: Noneoptions.group: dcserversoptions.maxLines: 100000options.listNegatives: Falseoptions.pushKey: Falseoptions.regexp: Noneoptions.sshOptions: Noneoptions.scpOptions: Noneoptions.dropKey: Falseoptions.serializeOps: Falseoptions.userID: rootoptions.verbosity 1options.vmstatOps Noneoptions.execfile: Noneargv: ['/opt/oracle/bda/bin/dcli', '-g', 'dcservers', '-v', 'date']Success connecting to nodes: ['bda1node07.example.com']...entering thread for bda1node07.example.com:execute: /usr/bin/ssh -l root bda1node07.example.com ' date' ...exiting thread for bda1node07.example.com status: 0bda1node07.example.com: Tue Feb 14 10:24:43 PST 2012]

## 14.2 dcliの構文

    dcli [option] [command]

パラメータ

option

  表14-1に説明されているオプション。すべてのオプションを省略して現在のラックにあるすべてのサーバーでコマンドを実行できます。

command

  オペレーティング・システム・プロンプトから実行する任意のコマンド。コマンドに句読点や特殊文字が含まれる場合、コマンドを二重引用符で囲ってください。

  バックスラッシュ(\)は、エスケープ文字です。シェルによる解釈を避けるため、コマンドラインでは次の特殊文字の前にバックスラッシュを付けてください。コマンド・ファイルではバックスラッシュは必要ありません。コマンド・ファイルの詳細は、`-x`オプションを参照してください。

  - `$` (ドル記号)
  - `'` (引用符)
  - `<` (より少ない)
  - `>` (より大きい)
  - `( )` (丸カッコ)

表14-1 dcliのオプション

オプション | 説明
--- | ---
`-c` `nodes` | コマンドが実行される場所となるOracle Big Data Applianceサーバーのカンマ区切りのリストを指定します。
`-C` | ターゲットとして/opt/oracle/bda/cluster-rack-infinibandのサーバーのリストを使用します。「ターゲット・サーバーの識別」を参照してください。
`-d` `destfile` | `-f` オプションのターゲット・ディレクトリまたはファイル名を指定します
`-f` `file` | ターゲット・サーバーのユーザーのホーム・ディレクトリにコピーするファイルを指定します。ファイルは実行されません。`-l`オプションを参照してください。
`-g` `groupfile` | コマンドが実行される場所となるOracle Big Data Applianceサーバーのリストを含むファイルを指定します。ファイルでサーバー名またはIPアドレスを使用できます。
`-h`、`--help` | コマンドの説明を表示します。
`-k` | 各サーバーの`/root/.ssh/authorized_keys`ファイルに`ssh`鍵をプッシュします。より簡単な別の方法については、「パスワードなしSSHの設定」を参照してください。
`-l` `userid` | 別のサーバーにログインするためのユーザーIDを指定します。デフォルトIDは`root`です。
`--maxlines=``maxlines` | 複数のサーバーで実行されるコマンドによって表示される出力の最大行数を指定します。デフォルトは10,000行です。
`-n` | エラー以外のメッセージの出力を短縮します。サーバーから通常の出力が返される場合(リターン・コード`0`)、サーバー名のみが表示されます。 `-n`オプションと`-r`オプションを一緒に使用することはできません。
`-r` `regexp` | 指定した正規表現と一致する行で出力をサーバー名に置き換えます。
`-s` `sshoptions` | SSHに渡されるオプションの文字列を指定します。
`--scp=``scpoptions` | セキュア・コピー(SCP)に渡されるオプションの文字列を指定します(これらのオプションがsshoptionsと異なる場合)。
`--serial` | コマンドがサーバーでシリアル実行されます。デフォルトはパラレル実行です。
`-t` | ターゲット・サーバーをリストします。
`--unkey` | ターゲット・サーバーの`authorized_key`ファイルから鍵を削除します。
`-v` | すべてのメッセージの詳細バージョンを表示します。
`--version` | `dcli`のバージョン番号を表示します。
`--vmstat=VMSTATOPS` | Linuxの仮想メモリー統計ユーティリティ(`vmstat`)の構文を表示します。このコマンドでは、プロセス、仮想メモリー、ディスク、トラップおよびCPUアクティビティの情報が返されます。 `vmstat`コマンドを入力する場合、そのオプションを引用符で囲ってください。次に例を示します。
    --vmstat="-a 3 5"
`vmstat`の詳細は、Linuxのドキュメントを参照してください。
`-x` `execfile` | ターゲット・サーバーのユーザーのホーム・ディレクトリにコピーして実行するコマンド・ファイルを指定します。`-l`オプションを参照してください。

## 14.3 dcliの戻り値

- `0`: コマンドはすべてのサーバーで正常に実行されました。

- `1`: 1つ以上のサーバーにアクセスできなかったか、リモート実行で0 (ゼロ)以外の値が返されました。応答のなかったサーバーがメッセージにリストされます。他のサーバーでは実行が継続されます。

- `2`: ローカル・エラーによって、コマンドの実行が抑止されました。

ローカルの`dcli`プロセスに割り込むと、リモート・コマンドが出力やステータスを返すことなく継続される可能性があります。

## 14.4 dcliの例

次に、`dcli`ユーティリティの例を示します。

次の例では、ターゲット・サーバーのデフォルト・リストが返されます。

    # dcli -t
    Target nodes: ['bda1node01-adm.example.com', 'bda1node02-adm.example.com', 'bda1node03-adm.example.com', 'bda1node04-adm.example.com', 'bda1node05-adm.example.com', 'bda1node06-adm.example.com', 'bda1node07-adm.example.com', 'bda1node08-adm.example.com', 'bda1node09-adm.example.com']

次の例では、すべてのサーバーの温度をチェックします。

    # dcli 'ipmitool sunoem cli "show /SYS/T_AMB" | grep value'

    bda1node01-adm.example.com: value = 22.000 degree C
    bda1node02-adm.example.com: value = 22.000 degree C
    bda1node03-adm.example.com: value = 22.000 degree C
    bda1node04-adm.example.com: value = 23.000 degree C
              .
              .
              .