我有4个shell脚本,我将它们嵌入Java代码中并转换为jar。我也有一个lambda AWS函数,可启动EMR集群。在lambda函数中,我应该使用步骤来运行生成的jar(java -jar /home/hadoop/aws.jar)。我有一些引导操作,在这些操作中,当购买集群时,我会设置一些环境变量。因此,理想情况下,集群启动后,集群应运行json事件的step值中指定的java -jar命令。
但是问题是 emr在步骤jar命令中终止失败。还有其他方法可以使用步骤从lambda运行java -jar命令。
"Steps":[
{
"Name": "Setup hadoop debugging",
"ActionOnFailure": "TERMINATE_CLUSTER",
"HadoopJarStep": {
"Jar": "command-runner.jar",
"Args": [
"state-pusher-script"
]
}
},
{
"Name": "Execute Step JAR",
"ActionOnFailure": "TERMINATE_CLUSTER",
"HadoopJarStep": {
"Jar": "command-runner.jar",
"Args":[
"java -jar /home/hadoop/lib/aws-add-step-emr-0.0.1-SNAPSHOT-shaded.jar"
]
}
}
],
"BootstrapActions":[
{
"Name": "Custom action",
"ScriptBootstrapAction": {
"Path": "s3://aws-east-1/bootstrap/init.sh"
}
}]