Получить AWS EMR DNS-адрес с помощью CLI - PullRequest
1 голос
/ 15 апреля 2019

Я пытаюсь настроить простой код для запуска при попытке ускорить EMR для какой-то специальной работы, которую я должен делать время от времени.

Прямо сейчас я передаю команду 'aws emr create-cluster' и затем нахожу DNS в консоли, как только кластер создан, чтобы затем использовать ssh для подключения.

Я бы хотел вообще не открывать консоль и использовать идентификатор кластера, чтобы получить значение 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

вероятно, придется добавить 'hadoop @' в переменную DNS перед передачей ее в команду, но сейчас мне более любопытно, имеет ли вышесказанное какой-либо функциональный смысл, и если да, то как я могу получить функциональные возможности команды description-cluster для вывода -MasterPublicDnsName, поскольку это, очевидно, просто то, что я придумал, а не фактическая опция, которую я нашел.

1 Ответ

1 голос
/ 16 апреля 2019

В AWS CLI есть опция запроса, которая позволяет запрашивать вывод команды. Вы также можете использовать официант , чтобы убедиться, что экземпляр работает, прежде чем пытаться подключиться к нему.

Вы можете просто запустить

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

Это должно сработать!

...