使用CLI获取aws EMR DNS地址

问题描述 投票:1回答:1

我正在尝试设置一些简单的代码,以便在我不得不做一些我不得不做的临时工作时不时地启动EMR。

现在我传递'aws emr create-cluster'命令,然后在创建集群后在控制台中找到DNS,然后使用ssh进行连接。

我想跳过根本不必打开控制台,并使用群集ID获取DNS值来创建我的SSH连接,但我没有看到明确的命令来执行此操作。我是CLI的新手,所以我想这是一个简单的任务,我只是在弄清楚自己。

在我看来,解决方案应该是符合的

aws emr create-cluster [config for cluster here] > file.txt
set DNS = aws emr describe-cluster --cluster-id file.txt -MasterPublicDnsName
ssh -i Desktop/AWS/EMRKey.pem -o ServerAliveInterval=15 hadoop@$DNS

可能必须在将DNS变量传递给命令之前将'hadoop @'附加到DNS变量,但我现在更好奇的是,如果上面的内容具有任何功能意义,如果是这样的话,我怎么能得到它的功能describe-cluster命令输出-MasterPublicDnsName,因为这显然只是我编写的东西而不是我找到的实际选项。

amazon-web-services command-line-interface amazon-emr
1个回答
1
投票

AWS CLI有一个查询选项,可以让您查询命令的输出。在尝试连接实例之前,您还需要使用waiter来确保实例已启动。

你可以简单地跑

cluster_id="j-2RNBSZZBLXTZ0"
aws emr wait cluster-running --cluster-id $cluster_id
hostname=`aws emr describe-cluster --output text --cluster-id $cluster_id --query Cluster.MasterPublicDnsName`
ssh hadoop@$hostname

这应该工作!

© www.soinside.com 2019 - 2024. All rights reserved.