Невозможно иметь Elastic IP для кластера EMR - PullRequest
0 голосов
/ 03 октября 2019

Я запускаю конвейер данных один раз в день, и конвейер создает временную EMR для запуска действий. EMR подключается к базе данных Mysql, и IP-адреса для главного и основного узлов должны быть внесены в белый список в БД.

Можно ли назначить статические или эластичные IP-адреса узлам на EMR, чтобы у меня не былобелый список IP-адресов узлов вручную каждый раз при создании EMR?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 октября 2019

Я был в той же ситуации и сделал код для присоединения предварительно полученного EIP к главному экземпляру. Но если вы хотите подключить AWS RDS, вы можете просто разрешить группу безопасности EMR, которая является лучшей.

Ниже приведено то, что я использовал для исправления EIP для главного экземпляра, а не для других. В случае приложения spark с кластерным режимом главный узел имеет сеанс драйвера spark, и только тот, который необходим для включения в белый список.

#!/bin/bash
BOOL=`cat /emr/instance-controller/lib/info/instance.json | jq .isMaster`

if [ $BOOL == "true" ]
then
    ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`

    aws ec2 associate-address --instance-id $ID --public-ip $1
fi

Этот сценарий получает аргумент, который является EIPВы хотите, и я поместил этот код в качестве действия начальной загрузки для EMR. Помните, что EMR должен иметь разрешение на выполнение для associate-address.

...