bst*_*mpi 19 hadoop amazon-web-services amazon-emr
我希望能够创建EMR集群,并让这些集群将消息发送回某个中央队列.为了使其工作,我需要在每个主节点上运行某种代理.这些代理中的每一个都必须在此消息中标识自己,以便收件人知道该消息所针对的群集.
主节点是否知道其ID(j-*************
)?如果没有,那么是否还有其他一些识别信息可以让邮件收件人推断出这个ID?
我已经看了一下配置文件/home/hadoop/conf
,我没有发现任何有用的东西.我发现了ID /mnt/var/log/instance-controller/instance-controller.log
,但看起来很难找到.我想知道实例控制器可能从哪个位置获取该ID.
jc *_*nem 37
您可以查看 /mnt/var/lib/info/
主节点以查找有关EMR群集设置的大量信息.更具体地说,/mnt/var/lib/info/job-flow.json
包含jobFlowId或ClusterID.
您可以使用预安装的json parser(jq
)来获取作业流ID.
cat /mnt/var/lib/info/job-flow.json | jq -r ".jobFlowId"
Run Code Online (Sandbox Code Playgroud)
(根据@Marboni更新)
您可以使用Amazon EC2 API来搞清楚.为简单起见,下面的示例使用shell命令.在现实生活中,您应该使用适当的API来执行此步骤.
首先,您应该找到您的实例ID:
INSTANCE=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用实例ID来查找群集ID:
ec2-describe-instances $INSTANCE | grep TAG | grep aws:elasticmapreduce:job-flow-id
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
归档时间: |
|
查看次数: |
8826 次 |
最近记录: |