Я создаю соединение SSH со своим namenode и двумя узлами данных на AWS. Когда я пытаюсь скопировать конфигурацию и мой .pem
файл от namenode до узлов данных, я получаю следующую ошибку:
Could not resolve hostname datanode1: Name or service not known
Моя команда:
scp ~/.ssh/hadoop-cluster-key.pem ~/.ssh/config datanode1:~/ssh
Мой файл конфигурации
Host namenode
HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
User ubuntu
IdentifyFile ~/.ssh/hadoop-cluster-key.pem
Host datanode1
HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
User ubuntu
IdentifyFile ~/.ssh/hadoop-cluster-key.pem
Host datanode2
HostName ec2-18-XXXXXXXXXXXXXXX-2.compute.amazonaws.com
User ubuntu
IdentifyFile ~/.ssh/hadoop-cluster-key.pem
Помогите мне зафиксировать это.
SSH не собирается читать Ваши конфигурационные файлы Hadoop для имен хостов.
Помещенный "namenode", "datanode1" и "datanode2" в Ваш / и т.д. файл hosts на каждом сервере. Теперь те имена хостов решат.
/etc/hosts файл будет похож на это (добавленное содержание). Измените IP-адреса, чтобы быть Вашим VPC частный IP-адрес для каждого экземпляра EC2.
10.0.0.10 namenode
10.0.0.11 datanode1
10.0.0.12 datanode2
Примечание: Для производственных систем я использовал бы Маршрут 53 с частными зонами для разрешения DNS в VPC.
Примечание: Просто копируя .pem файл в .ssh
каталога на каждом сервере не будет достаточно для включения "SSH без пароля". Необходимо будет также извлечь открытый ключ из пары ключей (.pem файл) и добавить это к .ssh/authorized_keys
.
Следующая команда извлечет открытый ключ. Затем "добавьте" содержание открытого ключа к .ssh/authorized_keys.
ssh-keygen -y -f ~/.ssh/hadoop-cluster-key.pem > ~/.ssh/hadoop-cluster-key.pub
cat ~/.ssh/hadoop-cluster-key.pub >> ~/.ssh/authorized_keys
Необходимо будет повторить вторую команду на каждом узле кластера.