我想在EMR作业中使用EBS快照。因为映射器从快照读取,所以我希望快照安装在每个节点上。除了登录到每个节点,还有其他简便的方法吗?我想我可以进行mapreduce工作的第一步来安装它,但这似乎是错误的。有更简单的方法吗?
最佳答案
这是可能的,但是您必须跳过一些障碍才能使其正常工作。假设您有从 shell 脚本中的EBS快照创建EBS卷的方法。 EMR提供了引导操作,它们只是您可以创建和运行的shell脚本。在允许运行任何作业(EMR中的步骤)之前,需要执行引导操作。
这是执行Shell脚本所需的步骤:
http://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html
http://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html
要获取当前实例ID,请使用元数据服务:
wget -q -O - http://instance-data/latest/meta-data/instance-id
拥有Shell脚本后,需要将其上载到S3,然后将该脚本作为引导操作添加到集群中:
http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html
另外请注意,您将为创建的每个EBS卷付费,因此请确保正确设置了终止逻辑!
关于hadoop - 将相同的EBS快照附加到每个EMR卷?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34126165/