クラスターの作成後、手動実行を使用して、選択したノードでスクリプトを実行できます。このトピックでは、これらのスクリプトを追加して実行する方法について説明します。
背景情報
手動実行を使用すると、既存のクラスター内の選択したノードで、指定したスクリプトをすぐに実行できます。この機能は、長時間実行クラスター向けに設計されています。一時的なクラスターの場合は、ブートストラップアクションを使用してクラスターを初期化します。詳細については、「ブートストラップアクションを使用したスクリプトの実行」をご参照ください。
ブートストラップアクションと同様に、手動実行を使用して、クラスターがまだサポートしていないソフトウェアやサービスをインストールできます。以下に例を示します。
-
YUM を使用して利用可能なソフトウェアパッケージをインストール。
-
インターネットから公開されているソフトウェアをダウンロード。
-
OSS からのデータ読み取り。
-
Pig コンポーネントなどのサービスのインストールと実行。これには、より複雑なスクリプトが必要になる場合があります。
前提条件
注意事項
-
手動実行の記録は最大 60 日間保持されます。
-
1 つのクラスターで同時に実行できるクラスタースクリプトは 1 つだけです。
-
クラスタースクリプトは、一部のノードで成功し、他のノードで失敗する場合があります。たとえば、ノードの再起動によってスクリプトが失敗する可能性があります。問題を解決した後、失敗したノードでのみスクリプトを再実行できます。クラスターのスケールアウト後、新しく追加されたノードでのみクラスタースクリプトを実行することもできます。
手順
-
「スクリプト操作」ページに移動します。
-
E-MapReduce コンソールにログインします。
-
上部メニューで、リージョンとリソースグループを選択します。
-
対象のクラスターの Services をクリックします。
-
[Script Operation]タブをクリックします。
-
-
Script Operation ページで、Manual Execution タブをクリックします。
-
Create and Execute をクリックします。
-
ダイアログボックスで、Name を入力し、Script Address ドロップダウンリストからスクリプトを選択し、Execution Scope を指定します。
説明-
クラスター全体でスクリプトを実行する前に、単一のノードでクラスタースクリプトをテストすることを推奨します。
-
スクリプトアドレスは、
oss://**/*.shの形式である必要があります。
-
-
パラメーターを設定した後、OK をクリックします。
クラスター スクリプトが作成されると、スクリプト リストに表示され、実行中の状態になります。スクリプトのステータスには、実行中、Complete、およびSubmit Failedがあります。
-
手動で実行したスクリプトの詳細を表示するには、操作 列の Details をクリックします。
-
スクリプトの実行ステータスを確認するには、スクリプト名の横にある実行結果の表示をクリックします。
各ノード上のスクリプトのステータスは、Waiting、実行中、Complete、失敗しました、Submit Failed、または キャンセル のいずれかです。
-
手動で実行されたスクリプトを削除するには、操作 列の 削除 をクリックします。
-
例
ブートストラップアクションスクリプトと同様に、クラスタースクリプトで OSS からダウンロードするファイルを指定できます。次の例は、ファイル oss://<yourBucketName>/<myFile>.tar.gz をダウンロードして、/yourDir ディレクトリに解凍する方法を示しています。
#!/bin/bash
osscmd --id=<yourAccessKeyId> --key=<yourAccessKeySecret> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourBucketName>/<yourFile>.tar.gz ./<yourFile>.tar.gz
mkdir -p /<yourDir>
tar -zxvf <yourFile>.tar.gz -C /<yourDir>
OSS には、内部エンドポイント、パブリックエンドポイント、VPC エンドポイントがあります。クラスターがクラシックネットワーク内にある場合は、内部エンドポイントを指定する必要があります。たとえば、China (Hangzhou) リージョンの内部エンドポイントは oss-cn-hangzhou-internal.aliyuncs.com です。クラスターが VPC 内にある場合は、VPC からアクセス可能なエンドポイントを指定する必要があります。たとえば、China (Hangzhou) リージョンの場合は vpc100-oss-cn-hangzhou.aliyuncs.com です。
また、クラスタースクリプトを使用して、YUM で追加のシステムパッケージをインストールすることもできます。たとえば、ld-linux.so.2 をインストールできます。
#!/bin/bash
yum install -y ld-linux.so.2
デフォルトでは、クラスターはスクリプトを root ユーザーとして実行します。また、su hadoop コマンドを使用して、スクリプト内で hadoop ユーザーに切り替えることもできます。