Amazon Elastic MapReduceのPig
割と有名な話かもしれないが、自分は最近まで知らなかった。
Amazon EMRにPigを設置する定義
{ "Name": "Setup Pig", "ActionOnFailure": "TERMINATE_JOB_FLOW", "HadoopJarStep": { "Jar": "s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar", "Args": [ "s3://us-east-1.elasticmapreduce/libs/pig/pig-script", "--base-path", "s3://us-east-1.elasticmapreduce/libs/pig/", "--install-pig" ], } }
→MapReduceジョブでデータのお掃除などをしておいてから、上記ジョブを流せばPigの設置が完了する。elastic-mapreduceコマンドに--pig-scriptオプションを渡す方式と異なり、Streamingなどとの混在が可能になる。
Amazon EMRにおけるPigは複数種類の入力を受け取れる
{ "Name": "Run Pig Script", "HadoopJarStep": { "Jar": "s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar", "Args": [ "s3://us-east-1.elasticmapreduce/libs/pig/pig-script", "--base-path", "s3://us-east-1.elasticmapreduce/libs/pig/", "--run-pig-script", "--args", "-f", "s3://bucket/script.pig", "-p", "INPUT_MASTER=hdfs:///master/", "-p", "INPUT_TRANSACTION=s3://bucket/input/transaction/yyyymmdd/", "-p", "OUTPUT=s3://bucket/output/yyyymmdd/" ], } }
→hdfsないしはs3を指定できる。