Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft Разработка приложений Облако/Azure Кластеры Hadoop по запросу из облака: внутреннее устройство, первые шаги, задачи, Hive RSS

Кластеры Hadoop по запросу из облака: внутреннее устройство, первые шаги, задачи, Hive

Текущий рейтинг: 0 (проголосовало 0)
 Посетителей: 521 | Просмотров: 566 (сегодня 0)  Шрифт: - +
Некоторое время назад, в рамках конференции Strata + Hadoop World был анонсирован выход в коммерческой эксплуатацию Windows Azure  HDInsight — облачного сервиса 100% совместимого с Apache Hadoop. Подробности о истории появления сервиса и его возможностях можно найти в этой статье на Хабре. Об анонсах конференции Strata + Hadoop World можно прочитать в другой свежей статье.

В этой статье речь пойдет о внутреннем устройстве кластеров HDInsight, старте работы с ними и первых задачах и запросах к Hive. В конце статьи приводятся реальные примеры использования Windows Azure HDInsight крупными международными организациями.

Windows Azure HDInsight предлагает следующие преимущества для своих пользователей:

  • Работа с большими данными с помощью знакомых инструментов: благодаря глубокой интеграции с инструментами бизнес-аналитики от Microsoft, такими как PowerPivot, Power View и Excel, сервис HDInsight позволяет вам легко анализировать ваши данные с помощью возможностей Hadoop. Прозрачно объединяйте данные из различных источников данных, включая HDInsight с помощью Power Query. Легко анализируйте и визуализируйте географические данные с помощью Power Map – новый картографический 3D-инструмент в Excel 2013;
  • Гибкость – HDInsight предлагает гибкость соответствующую изменениям потребностей вашей организации. С богатым набором скриптов PowerShell вы можете размещать и администрировать кластер Hadoop за считанные минуты вместо привычных часов или даже дней. Если вам нужен кластер большего размера, просто удалите существующий и создайте новый нужного размера в течении нескольких минут без потери каких либо данных;
  • Hadoop корпоративного уровня: HDInsight предлагает безопасность и управляемость корпоративного уровня. Благодаря выделенному узлу Secure Node, сервис HDInsight помогает обезопасить ваш кластер Hadoop. В дополнение, мы упростили управление вашим кластером Hadoop с помощью внушительного набора скриптов PowerShell;
  • Богатые возможности для разработчиков: сервис HDInsight предлагает мощные возможности для разработки приложений с богатым выбором языков, включая .NET, Java и другие. Разработчики на платформе .NET могут воспользоваться мощью запросов LINQ to Hive.

О Windows Azure HDInsight


Windows Azure HDInsight – 'это 100% совместимый дистрибутив Apache Hadoop доступный на платформе Windows Azure в качестве сервиса. Вместо того чтобы строить свой собственный дистрибутив, компания Microsoft выбрала партнерство с Hortonworks для портирования Apache Hadoop на платформу Windows. Micrsoft вложила более 6000 человекочасов и более 25000 строк кода в различные проекты в рамках Apache относящиеся к экосистеме Hadoop.

*
Увеличить

Одним из самых заметных вкладов Microsoft является разработка Windows Azure Storage-Blob (WASB) – тонкой прослойки, которая представляет блоки блобов хранилища Windows Azure в виде файловой системы HDFS вашего кластера Windows Azure HDInsight. Microsoft так же активно участвует и вкладывает усилия в проект Hive Stinger и работает над тем, чтобы достигнуть лучшей интеграции безопасности на платформе Windows.

Архитектура кластера в облаке, получаемого по запросу в виде сервиса представлена на следующей картинке:

*
Увеличить

На рисунке представлены следующие элементы:

Secure Role или Gateway Node – реверсивный прокси, который работает в качестве шлюза вашего кластера Hadoop. Secure Role отвечает за задачи аутентификации и авторизации и предоставляет конечные точки для WebHcat, Ambari, HiveServer, HiveServer2 и Oozie на 433 порту. Для того, чтобы подключиться к кластеру вы используете свои учетные данные указанные при создании кластера;

Head Node – это узел представленный виртуальной машиной уровня Extra Large (8 ядер, 14 GB RAM). В HDInsight Head Node выполняет важную роль, беря на себя ключевые функции кластера Hadoop: NameNode, Secondary NameNode и JobTracker. Head Node содержит в себе и выполняет следующие операционные сервисы и сервисы данных:

  • HiveServer and HiveServer2
  • Pig
  • Sqoop
  • Metastore
  • Derbyserver
  • Oozie
  • Templeton
  • Ambari


Worker Nodes – это узлы представленные виртуальными машинами уровня Large (4 ядра, 7 GB RAM). Worker Roles отвечают за запуск сервисов, которые поддерживают планирование задач, исполнение задач и доступ к данным:

  • TaskTracker
  • DataNode
  • Pig
  • Hive Client


Windows Azure Storage-BLOB (WASB) – файловая система по умолчанию в вашем кластере Windows Azure HDInsight представлена в виде хранилища Windows Azure Blob Storage. Microsoft реализовал тонкую прослойку поверх Blog Storage, которая представляет хранилище в виде файловой системы HDFS, которую мы называем Windows Azure Storage-Blob или WASB.

*

Отличная новость состоит в том, что вы можете взаимодействовать с WASB с помощью команд DFS используя Blob Storage REST API или через многочисленные популярные утилиты.

Другое примечательное свойство WASB заключается в том, что все данные, которые вы в нем храните будут доступны кластеру HDInsight, а после его удаления останутся нетронутыми. Если вы захотите удалить кластер, а потом заново создать новый, то вы сможете просто указать новому кластеру старые данные и использовать их.

Хранить данные в WASB дешевле, так как при работе с ними нет необходимости оплачивать исходящий трафик или вычислительные мощности требующиеся при работе с локальным хранилищем HDFS внутри виртуальных машин.

Наконец, хранение данных в WASB позволит вам поделиться ими с другими облачными сервисами или приложениями запущенными вне вашего кластера. Верно и обратное: хранимые в Windows Azure Storage данные из других сервисов могут быть c легкостью получены в кластер HDInsight.

Подробности о преимуществах использования WASB вы можете найти по следующей ссылке.

Local HDFS – кроме WASB в кластере HDInsight вам также доступно и локальное хранилище HDFS, однако его использование не поощряется, так как оно более затратное (работа с ним приравнивается к работе кластера) и все что храниться в локальном HDFS будет удалено вместе с кластером, когда вы от него отказываетесь.

Версии приложений доступные в HDInsight. На сегодня внутри кластера Hadoop в сервисе HDInsight вам по запросу доступны следующие версии приложений и сервисов:

КомпонентВерсия
Apache Hadoop1.2.0
Apache Hive0.11.0
Apache Pig0.11
Apache Sqoop1.4.3
Apache Oozie3.2.2
Apache HCatalogMerged with Hive
Apache Templeton0.1.4
SQL Server JDBC Driver3.0
AmbariAPI v1.0

Вы всегда можете найти актуальную информацию о версиях компонент кластера HDInsight по следующей ссылке.

Начало работы с HDInsight


Кластер HDInsight может быть создан из портала управления Windows Azure выбрав в меню Data Services пункт HDInsight. Для того чтобы создать кластер вам понадобиться указать наименование, размер кластер и количество узлов данных (Data Nodes), пароль для доступа к кластеру.

Кластер должен содержать как минимум одно ассоциированное хранилище Windows Azure Storage, которое будет постоянным местом хранения данных для этого кластера, при этом кластер и хранилище должны располагаться в одном регионе. Вы можете ассоциировать дополнительные хранилища для кластера с помощью пользовательской опции создания кластера.

*
Увеличить

Развертывание и конфигурирование кластера в облаке займет всего несколько минут. Как только он будет развернут вы сможете перейти на приветственную страницу, которая предлагает дополнительные ссылки на полезные ресурсы и примеры кода, на которых можно попрактиковаться, работая с Hadoop.

Перейдя на вкладку Dashboard вы увидите информацию о текущем статусте вашего кластера, включая разнообразные метрики: потребление узлов, история задач и ассоциированные хранилища данных.

*
Увеличить

Запуск первой задачи Map/Reduce для вашего кластера

Перед тем как вы запустите в кластере свою первую задачу вам потребуется подготовить ваше окружение для исопльзования командлетов PowerShell. Для работы с этими командлетами вам нужно установить Windows Azure Powershell и HDInsight PowerShell. Для этого просто перейдите по ссылкам на “Шаге 1” вашей приветственной страницы в панели управления кластером Windows Azure.

На приветственной странице вы так же можете найти примеры команд для работы как с Hive, так и с задачами MapReduce. Мы начнем работу с MapReduce.

Запустите пример с помощью следующих команд для того, чтобы создать определения задачи (job definition). Определние задачи содержит всю информацию, необходимую для задачи, например, какие мэпперы (mappers) или редьюсеры (reducers) использовать, какие данные использовать в качестве входных и где размещать выходные данные. В примере кода мы используем программу MapReduce и тестовый файл, который уже содержится в кластере. Мы так же создадим директорию для сохранения выходных данных.

$jarFile = "/example/jars/hadoop-examples.jar"
$className = "wordcount"
$statusDirectory = "/samples/wordcount/status"
$outputDirectory = "/samples/wordcount/output"
$inputDirectory = "/example/data/gutenberg"
$wordCount = New-AzureHDInsightMapReduceJobDefinition -JarFile $jarFile -ClassName
  $className -Arguments $inputDirectory, $outputDirectory -StatusFolder $statusDirectory

Выполните следующие команды для того чтобы получить информацию о вашей подписки на Windows Azure и для того, чтобы начать выполнение программы MapReduce. Задачи MapReduce обычно длятся продолжительное время, здесь мы используем пример для демонстрации того, как использовать асинхронные команды для старта выполнения задачи.

$subscriptionId = (Get-AzureSubscription -Current).SubscriptionId
$wordCountJob = $wordCount | Start-AzureHDInsightJob -Cluster HadoopIsAwesome -
Subscription $subscriptionId  | Wait-AzureHDInsightJob -Subscription $subscriptionId

Наконец, выполните следующую команду для получения и отображения всех результатов выполнения задачи.

Get-AzureHDInsightJobOutput -Subscription (Get-AzureSubscription -Current).SubscriptionId
-Cluster bc-newhdstorage -JobId $wordCountJob.JobId –StandardError

Результат этой команды и вывод информации о выполнении задачи вы увидите в терминале, так как показано ниже.

*
Увеличить

Выходные данные задачи были размещены в вашем хранилище в директории "/samples/wordcount/output”. Откройте средство просмотра хранилища в портале Windows Azure и перейдите к этому файлу чтобы скачать его и изучить содержимое.

*
Увеличить

Создание первой Hive-задачи

На стартовой странице есть примеры команд для подключения к кластеру и запуску Hive-задач. Щелкните на кнопку Hive в переключателе Job Type для доступа к примеру.

*
Увеличить

Запустите следующую команду для подключения к вашему кластеру.

Use-AzureHDInsightCluster HadoopIsAwesome (Get-AzureSubscription -Current).SubscriptionID

Затем выполните следующую команду для запуска запроса HiveQL к кластеру. Этот запрос использует тестовую таблицу, которая уже размещена в кластере при его создании.

Invoke-Hive "select country, state, count(*) as records from hivesampletable group by country, state order by records desc limit 5"

Этот запрос – пример простого запроса с select и group by, после его выполнения вы увидите результаты в окне PowerShell:

*
Увеличить

Узнать о Windows Azure HDInsight больше


В этой статье мы рассмотрели насколько это простая задача – создать и запустить кластер HDInsight и начать анализировать свои данные. Но HDInsight предлагает значительно больше возможностей, которые вы можете изучить, например, загрузку своих собственных наборов данных, запуск сложных изощренных задач и анализ результатов. Для того чтобы узнать больше о том, как работать с HDInsight посетите страницу с документацией или используйте следующие прямые ссылки на статьи (на англ.):


Статьи на русском доступны на портале AzureHub.ru:


Для информации о ценах сервиса Windows Azure HDInsight посетите эту страницу.

В  статье частично была использована информация из этой статьи официального блога.

Примеры использования Windows Azure HDInsight


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

Город Барселона выбрал инструменты бизнес-аналитики и обработки больших данных от Microsoft, в том числе Windows Azure HDInsight.  Анонс и подробное описание примера;

Политехнический институт Вирджинии использует HDInsight для обработки данных генома. Подробное описание примера;

Датская исследовательская организация Chr. Hansen разработчик натуральных ингредиентов для продуктовых, фармакологических и сельскохозяйственных производств исопльзует Windows Azure HDInsight для увеличения скорости обработки данных в 100 раз по сравнению со своим прошлым способом. Подробное описание примера.

Компания 343 Industries — разработчики игры Halo 4 используют Windows Azure HDInsight для проведения аналитических исследований на основе данных полученных от более 50 миллионов проданных экземпляров игр серии Halo для того, чтобы сделать онлайн-сервисы еще лучше. Подробное описание примера.

Медицинская компания Ascribe Ltd из Великобританнии – лидер в своей области – использует Windows Azure HDInsight для улучшения качества клинических исследований, предлагая исследователям значительно более быстрый способ обрабатывать данные большого объема из большого числа источников. Подробное описание примера.

Полезные ссылки


Ниже вы найдете ссылки на ресурсы, которые помогут вам в использовании облачной платформы Microsoft:

Автор: Владимир Юнев  •  Иcточник: MSDN  •  Опубликована: 05.02.2014
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:   hadoop.


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.