HadoopインフラストラクチャをデータセンターからAWS EMRに移行することを検討しています。 ETLプロセスのタスク/ステージの一部は依存しています。流れは
EMRでは、カスタムJar、Pig、Hiveのステップを見つけることができましたが、シェルスクリプトを実行するオプションが見つかりませんでした。これを克服しなければならないいくつかのオプションは、
車輪を再発明するのではなく、EMRまたはAWSから直接利用できる他のオプションが要件を満たす場合、私たちの努力は軽減されます。
リンクを参照してください: http://docs.aws.Amazon.com/emr/latest/ReleaseGuide/emr-hadoop-script.html
aws emr create-cluster --name "Test cluster" –-release-label --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-type m3.xlarge --instance-count 3 --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/script-path/my_script.sh"]
手順を実行してシェルスクリプトを実行する場合は、次のようにcommand-runner.jarを使用して、スクリプトに絶対パスを渡すことができます。
**JAR location** : command-runner.jar
**Arguments** : bash /home/hadoop/script_name.sh or bash /path_to_script/script_name.sh
{
'Name': 'run_script',
'ActionOnFailure': 'CANCEL_AND_WAIT',
'HadoopJarStep': {
'Jar': 'command-runner.jar',
'Args': [
"bash","/home/hadoop/script_name.sh"
]
}