Недавно я работал над уникальным проектом Hadoop, в котором мы развернули CDH (Cloudera Distribution for Hadoop) в Azure. Эта платформа предоставляет «Большие данные как услуга» ученым, работающим с данными крупной организации. Это развертывание редко осуществлялось где-либо прежде. Делясь некоторыми знаниями и личным опытом, приобретенным во время работы над проектом, цель этой статьи — дать вам общее представление о шагах, которые необходимо выполнить для установки CDH в Azure.
Справочный документ по развертыванию Azure доступен онлайн от Cloudera. Вы можете сослаться на это вместе с этим блогом.
Мы использовали машины CentOS 6.6 типа DS-14 для всех узлов в кластере. Также мы использовали выделенное хранилище премиум-класса для каждой машины в кластере. Причина использования хранилища премиум-класса заключается в том, что он обеспечивает высокие операции ввода-вывода в секунду (более 5000 операций ввода-вывода в секунду на диск) для различных заданий, связанных с наукой о данных. Одна из основных проблем хранения премиум-класса заключается в том, что мы не можем добавить их в резервное хранилище.
Дополнительные сведения о различных типах машин в Azure см. В разделе Типы машин .
Для получения более подробной информации о хранилище Premium, пожалуйста, обратитесь к разделу «Хранение Premium» .
Архитектура платформы выглядит следующим образом:
Предоставление машин
Самый первый шаг — настроить VPC (виртуальное частное облако) в Azure и настроить его на основе таких аспектов, как доступ к Интернету, подключение к другим доверенным сетям, доступ к другим службам Azure и т. Д.
После этого мы использовали командную строку Azure для подготовки экземпляров. То же самое можно сделать через портал управления Azure. Чтобы подготовить компьютеры, создайте пару ключей SSH, с помощью которых мы могли бы войти в экземпляры.
Установите Azure CLI (из Mac Yosemite):
brew install node npm install -g azure-cli
Подключить аккаунт:
Загрузите сертификат с портала, войдя в систему:
azure account download azure account import
Установите правильный аккаунт:
azure account list
Там может быть больше, чем 1 аккаунт.
azure account set Account name
Определите переменные командной строки:
ШАГ 1. Создайте StorageAccount для каждого компьютера (через портал Azure):
export vmStorageAccountName=clouderaw1store export vmStaticIP=XX.XX.XX.XX export vmName=CLOUDERAW1
ШАГ 2: Создайте контейнер:
Find the Connection String in Azure Portal: Browse > Storage Account (classic) > clouderaw1store > Settings > Keys > Primary Connection String
azure storage container create --container "vhds"
--connection-string "paste-here-connection-string" vhds
ШАГ 3: Создать узел CentOS:
azure vm create --vm-name ${vmName} --virtual-network-name NETWORK1 --blob-url Link to Blog URL --static-ip ${vmStaticIP} --userName clouderaadmin --ssh Specify Port Number --ssh-certkey.pub --no-ssh-password --vm-size Standard_DS14 --availability-set WORKER_AVS --connectcloudera-hadoop "5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150706"
ШАГ 4: Присоедините диски — несколько дисков:
azure vm disk attach-new --host-caching ReadOnly ${vmName} 512https://${vmStorageAccountName}.blob.core.windows.net/vhds/${vmName}-application.vhd
azure vm disk attach-new --host-caching ReadOnly ${vmName} 1023https://${vmStorageAccountName}.blob.core.windows.net/vhds/${vmName}-hadoop.vhd
azure vm disk attach-new --host-caching ReadOnly ${vmName} 1023https://${vmStorageAccountName}.blob.core.windows.net/vhds/${vmName}-hadoop1.vhd
azure vm disk attach-new --host-caching ReadOnly ${vmName} 1023https://${vmStorageAccountName}.blob.core.windows.net/vhds/${vmName}-hadoop2.vhd
ШАГ 5: Подтвердить
Проверьте виртуальную машину на портале Azure и выполните SSH:
ssh -i pathtoprivate_key clouderaadmin@{IP Address} -p {Port Number}
Каждый экземпляр Azure имеет диск ОС ( /dev/sda
). Цель этого диска — обеспечить быстрое время загрузки. Он не должен использоваться для каких-либо других целей. Второй диск ( /dev/sdb
) — это временный диск, который используется для файлов подкачки Linux. Мы можем подключить дополнительные диски (макс. 32 x 1 ТБ на компьютерах типа DS-14) к каждой виртуальной машине, в которой хранятся файлы журналов, данные приложений, данные Hadoop и т. Д. Они могут быть расположены как /dev/sdc
и /dev/sdd
т. Д. Мы можем проверить скорость чтения дисков, используя hdparm
. Hdparm
утилита Linux, позволяющая быстро определить скорость чтения жесткого диска
sudo yum install hdparm
hdparm -t /dev/sdc
Детали среды —
Машина шлюза или машина Stepping Stone (2 дополнительных диска) — 1. 512 ГБ для приложений 2. 1 ТБ для данных Hadoop
Рабочие машины (4 дополнительных диска) — 1. 512 ГБ для приложений 2. 3 x 1 ТБ для Hadoop
Мастер-машины (2 дополнительных диска) — 1. 512 ГБ для приложений 2. 1 ТБ для NN Dir
Установка Ansible и Cloudera Manager
После подготовки машин мы использовали скрипт Ansible для автоматического выполнения следующих задач для подготовки машин и настройки среды:
• Отключить SELinux
• Включить своп в Azure CentOS
• Установите Swappiness на 1
• Отключить IPv6
• Разделительные диски
• Формат дисков
• крепление дисков
• Настройка NTP и т. Д.
Для получения более подробной информации об установке Cloudera Manager через Ansible, пожалуйста, обратитесь к CM через Ansible
Cloudera Manager 5 можно установить по ссылке ниже:
http://archive.cloudera.com/cm5/installer/latest/
CDH можно установить, выполнив шаги, указанные в руководстве ниже:
Другим более простым способом установки CDH в Azure может быть использование шаблонов Azure .
Вывод
Azure-cli предоставил хороший способ предоставления виртуальных машин, установки жестких дисков и т. Д. Ansible-скрипты помогли нам быстро и автоматически подготовить машины для Hadoop.
Microsoft и Cloudera прилагают все усилия, чтобы сделать эту уникальную комбинацию развертывания успешной. Надеемся, что в ближайшем будущем мы увидим больше таких развертываний Hadoop на Azure.