ブートストラップアクションは、クラスターが Hadoop を起動する前に、カスタマイズされたスクリプトを実行するために使用されます。 カスタマイズされたスクリプトは、必要なサードパーティソフトウェアをインストールしたり、クラスターの動作環境を変更したりするために使用されます。
機能
ブートストラップアクションを使用して、次のような現在クラスターでサポートされていないさまざまなものを、クラスターにインストールし、実行します。
- Yum でソフトウェアをインストールします。
- パブリックネットワークからオープンソフトウェアを直接ダウンロードします。
- OSS からデータを読み込みます。
- Flink や Impala などのサービスをインストールして操作します。 ( この操作のためのスクリプトはさらに複雑です。)
従量課金クラスターでブートストラップアクションをテストし、テストが成功した場合のみサブスクリプションクラスターを作成することを強く推奨します。
手順
- Alibaba Cloud E-MapReduce コンソールにログインします。
- リージョンを選択します。 このリージョンに関連付けられているクラスターが一覧表示されます。
- [クラスターの作成] をクリックし、[クラスター作成] ページに入ります。
- [基本設定] ページの下部にある、[追加] をクリックし、操作ページに入ります。
- 設定項目を入力します。
クラスターの初期化中に指定された順序で実行されるブートストラップアクションを、最大で 16 個追加します。 デフォルトでは、カスタマイズされたスクリプトは root アカウントで実行されます。 スクリプト内では su hadoop コマンドを使用して Hadoop アカウントを切り替えます。
ブートストラップアクションは失敗する可能性がありますが、クラスターの作成には影響しません。 クラスターが正常に作成された後、クラスターの詳細ページのブートストラップとソフトウェアの設定列に、すべての異常が表示されます。 異常が発生した場合は、すべてのノードにログインし、/var/log/bootstrap-actions ディレクトリの操作ログを表示します。
ブートストラップアクションタイプ
ブートストラップアクションは、カスタムブートストラップアクションと動作条件付きブートストラップアクションに分類されます。 主な違いは、動作条件付きブートストラップアクションは要件を満たすノード内でのみ動作することです。
カスタムブートストラップアクション
カスタムブートストラップアクションについては、OSS 内のブートストラップアクション名と実行スクリプトの位置を指定し、必要に応じてオプションのパラメーターを入力する必要があります。 クラスターの初期化中に、すべてのノードで、指定された OSS スクリプトがダウンロードされ、直接またはオプションのパラメータを追加した後にスクリプトが実行されます。
#! #!/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 を直接呼び出してファイルをダウンロードします。
#! #!/bin/bash
yum install -y ld-linux.so. 2
動作条件付きブートストラップアクション
instance.isMaster=true mkdir -p /tmp/abc
複数の操作コマンドを指定する必要がある場合は、セミコロン (;) を使用して区切ります。 たとえば、次のように記述します。instance.isMaster=true mkdir -p /tmp/abc;mkdir -p /tmp/def