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 のステップを送信するには
Amazon EMR コンソール (https://console.aws.amazon.com/emr
) を開きます。 -
[Create cluster] (クラスターの作成) を選択し、Pig がインストールされたクラスターを作成します。クラスターの作成手順については、「Amazon EMR クラスターを計画して構成する」を参照してください。
-
ターミナルを開き、「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
-
コンソールで [Cluster List] (クラスターリスト) をクリックし、作成したクラスターの名前を選択します。
-
[Steps (ステップ)] セクションまでスクロールして展開し、[Add step (ステップの追加)] を選択します。
-
[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 (続行)]) を使用します。
-
-
[追加] を選択します。ステップは、[Pending] というステータスでコンソールに表示されます。
-
ステップが実行されると、ステータスは [Pending (保留中)] から [Running (実行中)]、[Running (実行中)] から [完了済み] に変更されます。スタータスを更新するには、[Actions] (アクション) 列の上にある [Refresh] (更新) アイコンを選択します。ステップが完了したら、Amazon S3 バケットをチェックして Pig ステップの出力ファイルがあることを確認します。
AWS CLI を使用した Pig の作業の送信
AWS CLI を使用して Pig のステップを送信するには
AWS CLI を使用してクラスターを起動する場合は、--applications
パラメータを使用して Pig をインストールします。Pig のステップを送信するには、--steps
パラメータを使用します。
-
Pig がインストールされたクラスターを起動するには、次のコマンドを入力します。
myKey
とamzn-s3-demo-bucket/
は、EC2 キーペアと Amazon S3 バケットの名前に置き換えます。aws emr create-cluster \ --name "
Test cluster
" \ --log-uri s3://amzn-s3-demo-bucket/
\ --release-labelemr-5.36.2
\ --applications Name=Pig \ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
注記
読みやすくするために、Linux 行連続文字 (\) が含まれています。Linux コマンドでは、これらは削除することも、使用することもできます。Windows の場合、削除するか、キャレット (^) に置き換えてください。
--instance-groups
パラメータを使用せずにインスタンス数を指定すると、1 つのマスターノードが起動され、残りのインスタンスはコアノードとして起動されます。すべてのノードで、コマンドで指定したインスタンスタイプが使用されます。注記
以前にデフォルトの EMR サービスロールと EC2 インスタンスプロファイルを作成していない場合は、「
aws emr create-default-roles
」と入力してそれらを作成してから、create-cluster
サブコマンドを入力します。 -
Pig ステップを送信するには、次のコマンドを入力します。
myClusterId
とamzn-s3-demo-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://amzn-s3-demo-bucket
/pig-apache/output]このコマンドを実行すると、ステップ ID が返されます。これを使用して、ステップの
State
を確認できます。 -
describe-step
コマンドを使用して、ステップのステータスのクエリを実行します。aws emr describe-step --cluster-id
myClusterId
--step-ids-1XXXXXXXXXXA
ステップの
State
は、ステップの実行に伴ってPENDING
からRUNNING
、さらにはCOMPLETED
へと変わります。ステップが完了したら、Amazon S3 バケットをチェックして Pig ステップの出力ファイルがあることを確認します。
AWS CLI での Amazon EMR コマンドの使用の詳細については、「AWS CLI コマンドリファレンス」を参照してください。