Статьи

Hadoop в My Azure: Hadoop для распространения Cloudera в Azure

Недавно я работал над уникальным проектом 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 т. Д. Мы можем проверить скорость чтения дисков, используя  hdparmHdparm утилита 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 можно установить, выполнив шаги, указанные в руководстве ниже:

 http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/CDH5-Installation-Guide.html

Другим более простым способом установки CDH в Azure может быть использование  шаблонов Azure .

Вывод

Azure-cli предоставил хороший способ предоставления виртуальных машин, установки жестких дисков и т. Д. Ansible-скрипты помогли нам быстро и автоматически подготовить машины для Hadoop. 

Microsoft и Cloudera прилагают все усилия, чтобы сделать эту уникальную комбинацию развертывания успешной. Надеемся, что в ближайшем будущем мы увидим больше таких развертываний Hadoop на Azure.