如何在EMR中的特定实例组上运行脚本

时间:2016-08-05 08:48:55

标签: amazon-web-services hadoop amazon-ec2 mapreduce amazon-emr

我遇到了一个任务,我必须在Task实例组实例上运行1个脚本。

我目前的方法 -

为此,我在集群启动时将脚本作为Bootstrap Actions传递,但它在所有计算机上运行脚本。 (主,核心,任务实例组)。

是否可以帮助我仅在特定(任务)实例组上运行该脚本?

实际任务是在任务实例组实例上运行终止通知轮询脚本。 - autocomplete.js documentation

1 个答案:

答案 0 :(得分:0)

您可以查看文件 /mnt/var/lib/info/extraInstanceData.json ,其中包含键 instanceRole 值,该值可以是master,core或task。 例如,将其添加到脚本中:

INSTANCE_ROLE=$(jq .instanceRole /mnt/var/lib/info/extraInstanceData.json)

或者,您可以使用群集中任何节点上存在的此文件 /mnt/var/lib/info/instance.json

  {
    "instanceGroupId": "ig-XXXXXXXXXX",
    "isMaster": false
  }

您可以将ig-XXXXXXXXXX与集群的任务组ID相匹配。