我希望能够创建 EMR 集群,并让这些集群将消息发送回某个中央队列。为了让它工作,我需要在每个主节点上运行某种代理。这些代理中的每一个都必须在此消息中标识自己,以便收件人知道该消息是关于哪个集群的。
主节点是否知道它的 ID (j-***************
)?如果不是,那么是否有其他一些识别信息可以让消息收件人推断出此 ID?
我查看了 /home/hadoop/conf
中的配置文件,但没有发现任何有用的东西。我在 /mnt/var/log/instance-controller/instance-controller.log
中找到了 ID,但看起来很难用 grep 查找。我想知道实例 Controller 最初可能从哪里获得该 ID。
最佳答案
您可以在主节点上查看 /mnt/var/lib/info/
以找到有关 EMR 集群设置的大量信息。更具体地说,/mnt/var/lib/info/job-flow.json
包含 jobFlowId 或 ClusterID。
您可以使用预装的 json 解析器 (jq
) 来获取作业流 ID。
cat /mnt/var/lib/info/job-flow.json | jq -r ".jobFlowId"
(根据@Marboni 更新)
关于amazon-web-services - EMR 主节点是否知道其集群 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227091/