カスタムJARステップを送信する - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタムJARステップを送信する

カスタム は、Amazon S3 にアップロードできるコンパイル済み Java プログラムJARを実行します。起動する Hadoop のバージョンに対してプログラムをコンパイルし、Amazon EMRクラスターにCUSTOM_JARステップを送信する必要があります。JAR ファイルのコンパイル方法の詳細については、「」を参照してくださいAmazon EMR を使用してバイナリを構築する

Hadoop MapReduce アプリケーションの構築の詳細については、Apache Hadoop ドキュメントのMapReduce チュートリアルを参照してください。

このセクションでは、Amazon でカスタムJARステップを送信する基本について説明しますEMR。カスタムJARステップを送信すると、Java プログラミング言語でデータを処理するためのスクリプトを作成できます。

コンソールでカスタムJARステップを送信する

この例では、Amazon EMRコンソールを使用して、実行中のクラスターにカスタムJARステップを送信する方法について説明します。

コンソールでカスタムJARステップを送信するには
  1. https://console.aws.amazon.com/emr で Amazon EMRコンソールを開きます。

  2. [Cluster List (クラスターリスト)] で、クラスターの名前を選択します。

  3. [Steps (ステップ)] セクションまでスクロールして展開し、[Add step (ステップの追加)] を選択します。

  4. [Add Step (ステップの追加)] ダイアログで:

    • ステップタイプ でカスタム JARを選択します。

    • 名前 には、デフォルトの名前 (カスタム JAR) を使用するか、新しい名前を入力します。

    • JAR S3 の場所 には、JARファイルの場所を入力するか、参照します。JAR の場所は、S3 へのパス、またはクラスパス内の完全修飾 Java クラスである場合があります。

    • [Arguments (引数)] では、必要な引数をスペース区切りの文字列として入力するか、フィールドを空のままにします。

    • [Action on failure (失敗時の操作)] では、デフォルトのオプション ([Continue (続行)]) を使用します。

  5. 追加を選択します。ステップは、[Pending] というステータスでコンソールに表示されます。

  6. ステップが実行されると、ステータスは [Pending (保留中)] から [Running (実行中)]、[Running (実行中)] から [完了済み] に変更されます。ステータスを更新するには、[Actions] 列の上にある [Refresh] アイコンを選択します。

を使用してクラスターを起動し、カスタムJARステップを送信する AWS CLI

を使用してクラスターを起動し、カスタムJARステップを送信するには AWS CLI

クラスターを起動し、 でカスタムJARステップを送信するには AWS CLI、 --stepsパラメータで create-cluster サブコマンドを入力します。

  • クラスターを起動してカスタムJARステップを送信するには、次のコマンドを入力します。myKey をEC2キーペアの名前に置き換え、mybucket をバケット名で使用します。

    aws emr create-cluster --name "Test cluster" --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --ec2-attributes KeyName=myKey --instance-type m5.xlarge --instance-count 3 \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"]
    注記

    読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。

    --instance-groups パラメータを使用せずにインスタンス数を指定すると、1 つのプライマリノードが起動され、残りのインスタンスはコアノードとして起動されます。すべてのノードで、コマンドで指定したインスタンスタイプが使用されます。

    注記

    デフォルトの Amazon EMRサービスロールとEC2インスタンスプロファイルを以前に作成していない場合は、create-clusterサブコマンドを入力する前に aws emr create-default-rolesと入力して作成します。

    での Amazon EMR コマンドの使用の詳細については、 AWS CLI「」を参照してくださいhttps://docs.aws.amazon.com/cli/latest/reference/emr

サードパーティーへの依存関係

プログラムJARsで使用するクラス MapReduce パスに を含める必要がある場合があります。これを行うための 2 つのオプションがあります。

  • --libjars s3://URI_to_JAR」の手順で、ステップオプションに を使用してクラスターを起動し、カスタムJARステップを送信する AWS CLI を含めます。

  • mapred-site.xmlmapreduce.application.classpath 設定を変更して、クラスターを起動します。mapred-site 設定分類を使用します。を使用して ステップでクラスターを作成するには AWS CLI、次のようになります。

    aws emr create-cluster --release-label emr-7.2.0 \ --applications Name=Hue Name=Hive Name=Pig --use-default-roles \ --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=myKey \ --steps Type=CUSTOM_JAR,Name="Custom JAR Step",ActionOnFailure=CONTINUE,Jar=pathtojarfile,Args=["pathtoinputdata","pathtooutputbucket","arg1","arg2"] \ --configurations https://s3.amazonaws.com/mybucket/myfolder/myConfig.json

    myConfig.json:

    [ { "Classification": "mapred-site", "Properties": { "mapreduce.application.classpath": "path1,path2" } } ]

    パスのカンマ区切りリストは、各タスクのJVMクラスパスに追加する必要があります。