Потратив некоторое время на изучение псевдораспределенного кластера с одним узлом, пришло время познакомиться с реальным миром. В зависимости от того, что работает лучше всего. Важно отметить, что для этого есть несколько способов, и я собираюсь рассказать о том, как настроить многоузловой кластер hadoop на Amazon EC2. Мы собираемся настроить кластер hasoop с 4 узлами, как показано ниже.
- NameNode (Мастер)
- SecondaryNameNode
- DataNode (Slave1)
- DataNode (Slave2)
Вот что тебе понадобится
- Аккаунт Amazon AWS
- PuTTy Windows Client (для подключения к экземпляру Amazon EC2)
- PuTTYgen (для генерации закрытого ключа — он будет использоваться в putty для подключения к экземпляру EC2)
- WinSCP (секретная копия)
Это будет серия из двух частей
В части 1 я расскажу об инфраструктуре, как показано ниже
- Настройка инстансов Amazon EC2
- Настройка клиентского доступа к инстансам Amazon (с помощью Putty.)
- Настройка доступа WinSCP к экземплярам EC2
В части 2 я расскажу об установке многоузлового кластера hadoop
- Hadoop Multi-Node Установка и настройка
1. Настройка инстансов Amazon EC2
При использовании 4-х узловых кластеров и минимального размера тома 8 ГБ, в среднем будет взиматься плата в размере 2 долл. США в день во всех 4 запущенных экземплярах. Вы можете остановить экземпляр в любое время, чтобы избежать оплаты, но вы потеряете публичный IP-адрес и хост, и перезапуск экземпляра создаст новые. Вы также можете в любой момент прекратить работу своего экземпляра Amazon EC2, и по умолчанию он удалит ваш экземпляр после завершения, поэтому просто будьте осторожны в своих действиях.
1.1 Получить учетную запись Amazon AWS
Если у вас еще нет учетной записи, создайте новую. У меня уже есть аккаунт AWS, и я собираюсь пропустить процесс регистрации. Amazon EC2 поставляется с подходящими экземплярами бесплатного уровня.
1.2 Запуск экземпляра
После того, как вы зарегистрировали аккаунт Amazon. Войдите в Amazon Web Services, нажмите «Моя учетная запись» и перейдите к консоли Amazon EC2.
1.3 Выберите AMI
Я выбираю Ubuntu Server 12.04.3 Сервер 64-битной ОС
1.4 Выберите тип экземпляра
Выберите микро экземпляр
1.5 Настройка количества экземпляров
Как уже упоминалось, мы настраиваем 4-х узловый кластер hadoop, поэтому, пожалуйста, введите 4 в качестве количества экземпляров. Пожалуйста, проверьте требования уровня бесплатного пользования Amazon EC2. Вы можете настроить кластер из 3 узлов с объемом хранилища <30 ГБ, чтобы избежать любых расходов. В производственной среде вы хотите иметь SecondayNameNode в качестве отдельной машины
1.6 Добавить хранилище
Минимальный объем тома составляет 8 ГБ
1.7 Описание экземпляра
Дайте вашему экземпляру имя и описание
1.8 Определите группу безопасности
Создайте новую группу безопасности, позже мы собираемся изменить группу безопасности с помощью правил безопасности.
1.9 Запустить экземпляр и создать пару безопасности
Просмотрите и запустите экземпляр.
Amazon EC2 использует криптографию с открытым ключом для шифрования и дешифрования информации для входа в систему. Криптография с открытым ключом использует открытый ключ для шифрования фрагмента данных, такого как пароль, затем получатель использует закрытый ключ для дешифрования данных. Открытый и закрытый ключи известны как пара ключей .
Создайте новую пару ключей и дайте ей имя «hadoopec2cluster» и загрузите файл пары ключей (.pem) на свой локальный компьютер. Нажмите Launch Instance
1.10 Запуск экземпляров
После того, как вы нажмете «Launch Instance», 4 экземпляр должен быть запущен в состоянии «pending»
Однажды в «работающем» состоянии мы теперь переименуем имя экземпляра, как показано ниже.
- HadoopNameNode (Мастер)
- HadoopSecondaryNameNode
- HadoopSlave1 (узел данных будет находиться здесь)
- HaddopSlave2 (узел данных будет находиться здесь)
Запишите ID экземпляра, общедоступный DNS / URL (ec2-54-209-221-112.compute-1.amazonaws.com) и общедоступный IP для каждого экземпляра для справки. Он понадобится нам позже для подключения с Замазка клиента. Также обратите внимание, что мы используем «HadoopEC2SecurityGroup».
Вы можете использовать существующую группу или создать новую. Когда вы создаете группу с параметрами по умолчанию, она добавляет правило для SSH на порт 22. Для того, чтобы иметь доступ по TCP и ICMP, нам нужно добавить 2 дополнительных правила безопасности. Добавьте «Все TCP», «Все ICMP» и «SSH (22)» в соответствии с правилами для входящих подключений в «HadoopEC2SecurityGroup». Это позволит выполнять команды ping, SSH и другие подобные команды между серверами и с любой другой машины в Интернете. Обязательно «Применить изменения правил», чтобы сохранить изменения.
Эти протоколы и порты также необходимы для обеспечения связи между серверами кластера. Поскольку это тестовая настройка, мы разрешаем доступ ко всем для TCP, ICMP и SSH и не заботимся о деталях отдельного порта сервера и безопасности.
2. Настройка клиентского доступа к инстансам Amazon
Теперь давайте удостоверимся, что мы можем подключиться ко всем 4 экземплярам. Для этого мы собираемся использовать клиент Putty. Мы собираемся настроить SSH-доступ без пароля между серверами для настройки кластера. Это позволяет осуществлять удаленный доступ с главного сервера на подчиненные серверы, чтобы главный сервер мог удаленно запускать службы узла данных и отслеживания задач на подчиненных серверах.
Мы будем использовать загруженный файл hadoopec2cluster.pem для генерации закрытого ключа (.ppk). Для генерации закрытого ключа нам нужен клиент Puttygen. Вы можете скачать putty и puttygen и различные утилиты в zip отсюда .
2.1 Генерация закрытого ключа
Давайте запустим клиент PUTTYGEN и импортируем пару ключей, которую мы создали на шаге запуска экземпляра — «hadoopec2cluster.pem»
Перейдите к Конверсиям и «Ключу импорта»
После импорта ключа Вы можете ввести фразу-пароль, чтобы защитить свой закрытый ключ, или оставить поля фразы-пароля пустыми, чтобы использовать закрытый ключ без какой-либо фразы-пароля. Парольная фраза защищает закрытый ключ от любого несанкционированного доступа к серверам, использующим ваш компьютер и ваш закрытый ключ.
Любой доступ к серверу с использованием закрытого ключа, защищенного парольной фразой, потребует от пользователя ввода ключевой фразы, чтобы разрешить доступ с закрытым ключом к серверу AWS EC2.
2.2 Сохранить приватный ключ
Теперь сохраните закрытый ключ, нажав «Сохранить закрытый ключ» и нажав «Да», так как мы собираемся оставить пароль пустым.
Сохраните файл .ppk и дайте ему осмысленное имя
Теперь мы готовы подключиться к нашей машине Amazon Instance впервые.
2.3 Подключение к инстансу Amazon
Давайте сначала подключимся к HadoopNameNode. Запустите клиент Putty, получите общедоступный URL-адрес, импортируйте закрытый ключ .ppk, который мы только что создали, для доступа по SSH без пароля. Согласно документации Amazon , для машин с Ubuntu имя пользователя — «Ubuntu».
2.3.1 Предоставить закрытый ключ для аутентификации
2.3.2 Имя хоста, порт и тип подключения
и «Открыть», чтобы начать сеанс замазки
при первом запуске сеанса вы увидите сообщение ниже, нажмите «Да»
и попросит вас ввести имя пользователя, введите ubuntu, если все пойдет хорошо, вам будет выдано приветственное сообщение с оболочкой Unix в конце.
Если есть проблема с вашим ключом, вы можете получить ниже сообщение об ошибке
Аналогично подключитесь к оставшимся 3 машинам HadoopSecondaryNameNode, HaddopSlave1, HadoopSlave2 соответственно, чтобы убедиться, что вы можете подключиться успешно.
2.4 Включить публичный доступ
Выпуск Ifconfig команды и запишите адрес IP. Затем мы собираемся обновить имя хоста с помощью общедоступного URL-адреса ec2 и, наконец, мы собираемся обновить файл / etc / hosts, чтобы сопоставить общедоступный URL-адрес ec2 с ip-адресом. Это поможет нам настроить главные и подчиненные узлы с именем хоста вместо IP-адреса.
Ниже приведен вывод HadoopNameNode ifconfig
Теперь, введите команду hostname, она отобразит IP-адрес, такой же, как адрес inet из команды ifconfig.
Нам нужно изменить имя хоста на публичный URL ec2 с помощью следующей команды
prebuffer_0nbsp;sudo hostname ec2-54-209-221-112.compute-1.amazonaws.com
2.5 Изменить / etc / hosts
Позволяет изменить хост на открытый IP-адрес EC2 и имя хоста.
Откройте / etc / hosts в vi, в самой первой строке будет показано 127.0.0.1 localhost, нам нужно заменить его на имя хоста amazon ec2 и ip-адрес, который мы только что собрали.
Измените файл и сохраните ваши изменения
Повторите разделы 2.3 и 2.4 для остальных 3 машин.
3. Настройте доступ WinSCP к экземплярам EC2
Для безопасной передачи файлов с вашего компьютера с Windows на Amazon EC2 WinSCP — это удобная утилита.
Укажите имя хоста, имя пользователя и файл закрытого ключа и сохраните вашу конфигурацию и логин
Если вы видите вышеупомянутую ошибку, просто проигнорируйте, и при успешном входе в систему вы увидите файловую систему unix зарегистрированного пользователя / home / ubuntu вашего компьютера Amazon EC2 Ubuntu.
Загрузите файл .pem на главный компьютер (HadoopNameNode). Он будет использоваться при подключении к подчиненным узлам во время демонов запуска hadoop.
Если вы сделали это далеко, хорошая работа! Вещи станут более интересными в части 2 .