Статьи

Hadoop + Amazon EC2 — обновленный учебник

На вики-странице Hadoop есть старое руководство: http://wiki.apache.org/hadoop/AmazonEC2 , но недавно мне пришлось следовать этому руководству, и я заметил, что оно не охватывает некоторые новые функции Amazon.

Чтобы следовать этому руководству, рекомендуется, чтобы вы уже были знакомы с основами Hadoop, очень полезное руководство «как начать» можно найти на домашней странице Hadoop: http://hadoop.apache.org/ . Кроме того, вы должны быть знакомы, по крайней мере, с внутренними компонентами Amazon EC2 и определениями экземпляров.

Когда вы регистрируете учетную запись на Amazon AWS, вы получаете 750 часов для запуска
t1.micro , но, к сожалению, вы не можете успешно запустить Hadoop на таких машинах.

На следующих шагах команда, начинающаяся с $, означает, что она должна быть выполнена на локальном компьютере, а с # — в экземпляре EC2.

Создайте сертификат X.509

Поскольку мы собираемся использовать инструменты ec2, нашей учетной записи в AWS требуется действующий сертификат X.509:

    • Создайте папку .ec2:
1
$ mkdir ~/.ec2
    • Войдите в систему на AWS
      • Выберите «Учетные данные безопасности» и в «Учетные данные доступа» нажмите «Сертификаты X.509»;
      • У вас есть два варианта:
        • Создайте сертификат с помощью командной строки:
1
$ cd ~/.ec2; openssl genrsa -des3 -out my-pk.pem 2048
1
$ openssl rsa -in my-pk.pem -out my-pk-unencrypt.pem
1
$ openssl req -new -x509 -key my-pk.pem -out my-cert.pem -days 1095
        • Это работает только в том случае, если дата вашей машины в порядке.
      • Создайте сертификат на сайте и загрузите закрытый ключ (не забудьте указать его в ~ / .ec2).

Настройка Amazon EC2-Tools

    • Скачать и распаковать ec2-инструменты;
    • Отредактируйте ваш ~ / .profile, чтобы экспортировать все переменные, необходимые для ec2-tools, чтобы вам не приходилось делать это каждый раз, когда вы открываете приглашение:
      • Вот пример того, что должно быть добавлено в файл ~ / .profile:
        • экспорт JAVA_HOME = / usr / lib / jvm / java-6-sun
        • экспорт EC2_HOME = ~ / ec2-api-tools- *
        • экспорт PATH = $ PATH: $ EC2_HOME / bin
        • экспорт EC2_CERT = ~ / .ec2 / my-cert.pem
      • Чтобы получить доступ к экземпляру, вам необходимо пройти аутентификацию (очевидные причины безопасности), таким образом, вы должны создать пару ключей (открытый и закрытый ключи):
        • На https://console.aws.amazon.com/ec2/home нажмите «Пары ключей» или
        • Вы можете запустить следующие команды:
1
$ ec2-add-keypair my-keypair | grep –v KEYPAIR > ~/.ec2/id_rsa-keypair
1
$ chmod 600 ~/.ec2/id_rsa-keypair

Настройка Hadoop

После загрузки и распаковки Hadoop вы должны отредактировать скрипт конфигурации EC2, который находится по адресу src / contrib / ec2 / bin / hadoop-ec2-env.sh.

  • Переменные AWS
    • Эти переменные связаны с вашей учетной записью AWS (AWS_ACCOUNT_ID, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), их можно найти при входе в вашу учетную запись, в учетных данных безопасности;
      • AWS_ACCOUNT_ID — это ваш 12-значный номер счета.
  • Переменные безопасности
    • Переменные безопасности (EC2_KEYDIR, KEY_NAME, PRIVATE_KEY_PATH) — это переменные, связанные с запуском и доступом к экземпляру EC2;
    • Вы должны сохранить закрытый ключ в свой путь EC2_KEYDIR.
    • Выберите AMI
      • В зависимости от версии Hadoop, которую вы хотите запустить (HADOOP_VERSION), и типа экземпляра (INSTANCE_TYPE), вы должны использовать правильный образ для развертывания вашего экземпляра:
      • Есть много общедоступных изображений AMI, которые вы можете использовать (они должны соответствовать потребностям большинства пользователей), перечислить, набрать
1
$ ec2-describe-images -x all | grep hadoop
    • Или вы можете создать свой собственный образ и загрузить его в корзину Amazon S3;
    • После выбора AMI, который вы будете использовать, в hadoop-ec2-env.sh нужно изменить три переменные:
      • S3_BUCKET: область, в которой находится изображение, которое вы будете использовать, например, hadoop-images,
      • ARCH: архитектура выбранного вами изображения AMI (i386 или x84_64) и
      • BASE_AMI_IMAGE: уникальный код, который отображает изображение AMI, пример ami-2b5fba42.
    • Другой настраиваемой переменной является JAVA_VERSION, там вы можете определить, какая версия будет установлена ​​вместе с экземпляром:
      • Вы также можете указать ссылку, где будет расположен бинарный файл (JAVA_BINARY_URL), например, если у вас JAVA_VERSION = 1.6.0_29, можно использовать JAVA_BINARY_URL = http: //download.oracle.com/otn-pub/java/ JDK / 6u29-b11 / JDK-6u29-линукс-i586.bin.

Бег!

    • Вы можете добавить содержимое src / contrib / ec2 / bin в переменную PATH, чтобы вы могли запускать команды независимо от того, где открыта подсказка;
    • Чтобы запустить кластер EC2 и запустить Hadoop, используйте следующую команду. Аргументами являются имя кластера (hadoop-test) и количество ведомых (2). Когда кластер загрузится, общедоступное DNS-имя будет напечатано на консоли.
1
$ hadoop-ec2 launch-cluster hadoop-test 2
    • Чтобы войти на мастер-узел из вашего «кластера», введите:
1
$ hadoop-ec2 login hadoop-test
    • Когда вы войдете в мастер-узел, вы сможете начать работу:
      • Например, чтобы протестировать ваш кластер, вы можете запустить вычисление числа pi, которое уже предоставлено hadoop * -examples.jar:
1
# cd /usr/local/hadoop-*
1
# bin/hadoop jar hadoop-*-examples.jar pi 10 10000000
    • Вы можете проверить прогресс своей работы на http: // MASTER_HOST: 50030 /. Где MASTER_HOST — имя хоста, возвращаемое после запуска кластера.
    • После того, как ваша работа закончена, кластер остается живым. Для выключения вы используете следующую команду:
1
$ hadoop-ec2 terminate-cluster hadoop-test
    • Помните, что в Amazon EC2 экземпляры взимаются за час, поэтому, если вы хотите провести тесты, вы можете поиграть с кластером еще несколько минут.

Ссылка: Hadoop + Amazon EC2 — обновленное руководство от нашего партнера по JCG Родриго Дуарте в блоге Thinking Bigger .