ブートストラップアクションは、クラスターが Hadoop を起動する前に、カスタマイズされたスクリプトを実行するために使用されます。 カスタマイズされたスクリプトは、必要なサードパーティソフトウェアをインストールしたり、クラスターの動作環境を変更したりするために使用されます。

機能

ブートストラップアクションを使用して、次のような現在クラスターでサポートされていないさまざまなものを、クラスターにインストールし、実行します。

  • Yum でソフトウェアをインストールします。
  • パブリックネットワークからオープンソフトウェアを直接ダウンロードします。
  • OSS からデータを読み込みます。
  • Flink や Impala などのサービスをインストールして操作します。 ( この操作のためのスクリプトはさらに複雑です。)

従量課金クラスターでブートストラップアクションをテストし、テストが成功した場合のみサブスクリプションクラスターを作成することを強く推奨します。

手順

  1. Alibaba Cloud E-MapReduce コンソールにログインします。
  2. リージョンを選択します。 このリージョンに関連付けられているクラスターが一覧表示されます。
  3. [クラスターの作成] をクリックし、[クラスター作成] ページに入ります。
  4. [基本設定] ページの下部にある、[追加] をクリックし、操作ページに入ります。
  5. 設定項目を入力します。

クラスターの初期化中に指定された順序で実行されるブートストラップアクションを、最大で 16 個追加します。 デフォルトでは、カスタマイズされたスクリプトは root アカウントで実行されます。 スクリプト内では su hadoop コマンドを使用して Hadoop アカウントを切り替えます。

ブートストラップアクションは失敗する可能性がありますが、クラスターの作成には影響しません。 クラスターが正常に作成された後、クラスターの詳細ページのブートストラップとソフトウェアの設定列に、すべての異常が表示されます。 異常が発生した場合は、すべてのノードにログインし、/var/log/bootstrap-actions ディレクトリの操作ログを表示します。

ブートストラップアクションタイプ

ブートストラップアクションは、カスタムブートストラップアクションと動作条件付きブートストラップアクションに分類されます。 主な違いは、動作条件付きブートストラップアクションは要件を満たすノード内でのみ動作することです。

カスタムブートストラップアクション

カスタムブートストラップアクションについては、OSS 内のブートストラップアクション名と実行スクリプトの位置を指定し、必要に応じてオプションのパラメーターを入力する必要があります。 クラスターの初期化中に、すべてのノードで、指定された OSS スクリプトがダウンロードされ、直接またはオプションのパラメータを追加した後にスクリプトが実行されます。

スクリプト内で、OSS からダウンロードするファイルを指定します。 次の例では、oss://yourbucket/myfile.tar.gz ファイルがダウンロードされ、/yourdir ディレクトリに展開されます。
#! #!/bin/bash
osscmd --id=<yourid> --key=<yourkey> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourbucket>/<myfile>.tar.gz ./<myfile>.tar.gz
mkdir -p /<yourdir>
tar -zxvf <myfile>.tar.gz -C /<yourdir>

osscmd はノードにプリインストールされており、osscmd を直接呼び出してファイルをダウンロードします。

重要 OSS アドレスホストには、イントラネットアドレス、インターネットアドレス、および VPC ネットワークアドレスがあります。 従来のネットワークを使用している場合は、イントラネットアドレスを指定する必要があります。 杭州の場合、イントラネットアドレスは oss-cn-hangzhou-internal.aliyuncs.com です。 VPC ネットワークを使用している場合は、VPC イントラネットがアクセスできるドメイン名を指定する必要があります。 杭州の場合、ドメイン名は vpc100- os-cn -hangzhou.aliyuncs.com です。
ブートストラップアクションでは、Yum を通じて追加のシステムソフトウェアパッケージがインストールされます。 次の例は、ld-linux.so. 2 のインストールを示しています。
#! #!/bin/bash
yum install -y ld-linux.so. 2

動作条件付きブートストラップアクション

動作条件付きブートストラップアクションの実行スクリプトは事前に定義されています。 そのため、使用する際に必要なのは、名前とオプションのパラメーターを指定することだけです。 動作条件付きブートストラップアクションでは、動作条件とコマンド (スペースで区切られます) を含む、オプションのパラメーターが提供されます。 動作条件では instance.isMaster=true/false がサポートされています。これによって、マスターノードまたは非マスターノードのみで動作するように指定されます。 次の例では、動作条件付きブートストラップアクションのオプションパラメーターで、マスターノードにのみディレクトリを作成するように指定されています。
instance.isMaster=true mkdir -p /tmp/abc

複数の操作コマンドを指定する必要がある場合は、セミコロン (;) を使用して区切ります。 たとえば、次のように記述します。instance.isMaster=true mkdir -p /tmp/abc;mkdir -p /tmp/def