Pig の作業の送信 - Amazon EMR

Pig の作業の送信

このセクションでは、Pig の作業を Amazon EMR クラスターに送信する方法を示します。次の例では、Apache ログファイルを評価し、転送された合計バイト数、上位 50 の IP アドレスリスト、上位 50 の外部参照者リスト、Bing や Google を使用した検索語トップ 50 などの情報が含まれるレポートを生成します。Pig スクリプトは、Amazon S3 バケット s3://elasticmapreduce/samples/pig-apache/do-reports2.pig に配置されています。入力データは Amazon S3 バケット s3://elasticmapreduce/samples/pig-apache/input に配置されています。出力は、Amazon S3 バケットに保存されます。

Amazon EMR コンソールを使用した Pig の作業の送信

この例では、Amazon EMR コンソールを使用し、Pig のステップをクラスターに追加する方法について説明します。

Pig のステップを送信するには
  1. Amazon EMR コンソール (https://console.aws.amazon.com/emr) を開きます。

  2. [Create cluster] (クラスターの作成) を選択し、Pig がインストールされたクラスターを作成します。クラスターの作成手順については、「Amazon EMR クラスターを計画して構成する」を参照してください。

  3. ターミナルを開き、「SSH を使用してマスターノードに接続する」で説明されている手順に従ってクラスターのマスターノードに SSH 接続します。完了したら、次の手順を実行してください。

    sudo mkdir -p /home/hadoop/lib/pig/ sudo aws s3 cp s3://elasticmapreduce/libs/pig/0.3/piggybank-0.3-amzn.jar /home/hadoop/lib/pig/piggybank.jar
  4. コンソールで [Cluster List] (クラスターリスト) をクリックし、作成したクラスターの名前を選択します。

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

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

    • [Step type (ステップタイプ)] で、[Pig program (Pig プログラム)] を選択します。

    • [Name (名前)] では、デフォルト名(Pig program)を使用するか、または新しい名前を入力します。

    • [Script S3 location (スクリプト S3 の場所)] で、Pig スクリプトの場所を入力します。例: s3://elasticmapreduce/samples/pig-apache/do-reports2.pig

    • [Input S3 location (S3 の場所の入力)] で、入力データの場所を入力します。例: s3://elasticmapreduce/samples/pig-apache/input

    • [Output S3 location] (S3 の場所の出力) で、Amazon S3 出力バケットの名前を入力するか、参照します。

    • [Arguments (引数)] は、フィールドを空のままにします。

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

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

  8. ステップが実行されると、ステータスは [Pending (保留中)] から [Running (実行中)]、[Running (実行中)] から [完了済み] に変更されます。スタータスを更新するには、[Actions] (アクション) 列の上にある [Refresh] (更新) アイコンを選択します。ステップが完了したら、Amazon S3 バケットをチェックして Pig ステップの出力ファイルがあることを確認します。

AWS CLI を使用した Pig の作業の送信

AWS CLI を使用して Pig のステップを送信するには

AWS CLI を使用してクラスターを起動する場合は、--applications パラメータを使用して Pig をインストールします。Pig のステップを送信するには、--steps パラメータを使用します。

  1. Pig がインストールされたクラスターを起動するには、次のコマンドを入力します。myKeyDOC-EXAMPLE-BUCKET/ は、EC2 キーペアと Amazon S3 バケットの名前に置き換えます。

    aws emr create-cluster \ --name "Test cluster" \ --log-uri s3://DOC-EXAMPLE-BUCKET/ \ --release-label emr-5.36.1 \ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey \ --instance-type m5.xlarge \ --instance-count 3
    注記

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

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

    注記

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

  2. Pig ステップを送信するには、次のコマンドを入力します。myClusterIdDOC-EXAMPLE-BUCKET は、クラスター ID と Amazon S3 バケットの名前に置き換えます。

    aws emr add-steps \ --cluster-id myClusterId \ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,Args=[-f,s3://elasticmapreduce/samples/pig-apache/do-reports2.pig,-p,INPUT=s3://elasticmapreduce/samples/pig-apache/input,-p,OUTPUT=s3://DOC-EXAMPLE-BUCKET/pig-apache/output]

    このコマンドを実行すると、ステップ ID が返されます。これを使用して、ステップの State を確認できます。

  3. describe-step コマンドを使用して、ステップのステータスのクエリを実行します。

    aws emr describe-step --cluster-id myClusterId --step-id s-1XXXXXXXXXXA

    ステップの State は、ステップの実行に伴って PENDING から RUNNING、さらには COMPLETED へと変わります。ステップが完了したら、Amazon S3 バケットをチェックして Pig ステップの出力ファイルがあることを確認します。

AWS CLI での Amazon EMR コマンドの使用の詳細については、「AWS CLI コマンドリファレンス」を参照してください。