すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:手動でスクリプトを実行する

最終更新日:Nov 09, 2025

クラスターを作成した後、手動スクリプト実行機能を使用して、複数のノードで特定のスクリプトを実行し、カスタム要件を満たすことができます。このトピックでは、手動スクリプトの追加方法と実行方法について説明します。

背景情報

手動スクリプト実行機能を使用すると、複数の既存のノードで特定のスクリプトをすぐに実行できます。この機能は、長時間実行されるクラスターに適しています。オンデマンドで作成される一時的なクラスターの場合は、ブートストラップアクションを使用してクラスターを初期化します。ブートストラップアクションの詳細については、「ブートストラップアクションを使用してスクリプトを実行する」をご参照ください。

手動実行はブートストラップアクションに似ています。クラスターを作成した後、手動実行機能を使用して、クラスターでまだサポートされていないソフトウェアやサービスをインストールできます。次に例を示します。

  • Yellowdog Updater, Modified (YUM) を使用してソフトウェアをインストールします。

  • インターネットからソフトウェアをダウンロードします。

  • Object Storage Service (OSS) からデータを読み取ります。

  • より複雑なスクリプトを必要とする Pig コンポーネントなどのサービスをインストールして実行します。

前提条件

  • E-MapReduce クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。

  • クラスターは実行中の状態である必要があります。クラスターが他の状態にある場合、クラスター スクリプトを実行することはできません。

  • クラスター スクリプトを開発または取得し、OSS にアップロードしていること。例については、「」をご参照ください。

使用上の注意

  • 手動で実行されたスクリプトのレコードは、最大 60 日間保持されます。

  • 一度にクラスターで実行できるクラスター スクリプトは 1 つだけです。クラスター スクリプトが実行中の場合、新しいスクリプトを送信することはできません。

  • クラスター スクリプトは、一部のノードでは成功し、他のノードでは失敗する場合があります。たとえば、ノードの再起動が原因でスクリプトが失敗することがあります。問題を解決した後、以前に失敗したノードでのみスクリプトを再実行できます。クラスターをスケールアウトした後、新しいノードでのみスクリプトを実行することもできます。

手順

  1. [スクリプト操作] タブに移動します。

    1. EMR コンソールにログインします。左側のナビゲーションウィンドウで、[EMR on ECS] をクリックします。

    2. 上部のナビゲーションバーで、ビジネス要件に基づいてリージョンとリソースグループを選択します。

    3. 管理するクラスターを見つけ、[アクション] 列の [サービス] をクリックします。

    4. [スクリプト操作] タブをクリックします。

  2. [スクリプト操作] ページで、[手動実行] タブをクリックします。

  3. [作成して実行] をクリックします。

  4. 表示されるダイアログボックスで、[名前] を入力し、[スクリプトの場所] ドロップダウンリストから場所を選択し、[実行範囲] ドロップダウンリストから範囲を選択します。

    説明
    • クラスター スクリプト機能を使用する場合は、まずシングルノードでスクリプトをテストします。テストが成功したら、クラスター全体でスクリプトを実行します。

    • スクリプトパスは oss://**/*.sh 形式である必要があります。

  5. パラメーターを設定したら、[OK] をクリックします。

    スクリプトが作成されると、スクリプトリストに追加され、ステータスが [実行中] になります。スクリプトのステータスには、[実行中][完了][送信失敗] があります。

    • [アクション] 列で [詳細] をクリックして、スクリプトの詳細を表示します。

    • [実行結果の表示] をクリックして、スクリプトの実行ステータスを表示します。

      ノード上のスクリプトのステータスは、[待機中][実行中][完了][失敗][送信失敗]、または [キャンセル済み] です。

    • [アクション] 列で [削除] をクリックしてスクリプトを削除します。

ブートストラップアクション スクリプトと同様に、クラスター スクリプトで OSS からダウンロードするファイルを指定できます。たとえば、サンプルファイル oss://<yourBucket>/<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 アドレスは、内部エンドポイント、パブリックエンドポイント、または virtual private cloud (VPC) エンドポイントにすることができます。クラシックネットワークを使用する場合は、内部エンドポイントを指定します。たとえば、中国 (杭州) リージョンの OSS の内部エンドポイントは oss-cn-hangzhou-internal.aliyuncs.com です。VPC を使用する場合は、VPC からアクセス可能なドメイン名を指定します。たとえば、中国 (杭州) リージョンの OSS のドメイン名は vpc100-oss-cn-hangzhou.aliyuncs.com です。

また、YUM と共にクラスター スクリプトを使用して、ld-linux.so.2 などの追加のシステムパッケージをインストールすることもできます。

#!/bin/bash
yum install -y ld-linux.so.2

デフォルトでは、スクリプトは root ユーザーによって実行されます。スクリプトで su hadoop コマンドを使用して hadoop ユーザーに切り替えることもできます。