- PVSM.RU - https://www.pvsm.ru -
Некоторое время назад, в рамках конференции Strata + Hadoop World [1] был анонсирован [2] выход в коммерческой эксплуатацию Windows Azure HDInsight [3] — облачного сервиса 100% совместимого с Apache Hadoop. Подробности о истории появления сервиса и его возможностях можно найти в этой статье [4] на Хабре. Об анонсах конференции Strata + Hadoop World можно прочитать в другой свежей статье [5].
В этой статье речь пойдет о внутреннем устройстве кластеров HDInsight, старте работы с ними и первых задачах и запросах к Hive. В конце статьи приводятся реальные примеры использования Windows Azure HDInsight крупными международными организациями.
Windows Azure HDInsight предлагает следующие преимущества для своих пользователей:
Windows Azure HDInsight – 'это 100% совместимый дистрибутив Apache Hadoop доступный на платформе Windows Azure в качестве сервиса. Вместо того чтобы строить свой собственный дистрибутив, компания Microsoft выбрала партнерство с Hortonworks [6] для портирования Apache Hadoop на платформу Windows. Micrsoft вложила более 6000 человекочасов и более 25000 строк кода в различные проекты в рамках Apache относящиеся к экосистеме Hadoop.
Одним из самых заметных вкладов Microsoft является разработка Windows Azure Storage-Blob (WASB) [7] – тонкой прослойки, которая представляет блоки блобов хранилища 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 содержит в себе и выполняет следующие операционные сервисы и сервисы данных:
Worker Nodes – это узлы представленные виртуальными машинами уровня Large (4 ядра, 7 GB RAM). Worker Roles отвечают за запуск сервисов, которые поддерживают планирование задач, исполнение задач и доступ к данным:
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 [8] или через многочисленные популярные утилиты [9].
Другое примечательное свойство WASB заключается в том, что все данные, которые вы в нем храните будут доступны кластеру HDInsight, а после его удаления останутся нетронутыми. Если вы захотите удалить кластер, а потом заново создать новый, то вы сможете просто указать новому кластеру старые данные и использовать их.
Хранить данные в WASB дешевле, так как при работе с ними нет необходимости оплачивать исходящий трафик или вычислительные мощности требующиеся при работе с локальным хранилищем HDFS внутри виртуальных машин.
Наконец, хранение данных в WASB позволит вам поделиться ими с другими облачными сервисами или приложениями запущенными вне вашего кластера. Верно и обратное: хранимые в Windows Azure Storage данные из других сервисов могут быть c легкостью получены в кластер HDInsight.
Подробности о преимуществах использования WASB вы можете найти по следующей ссылке [7].
Local HDFS – кроме WASB в кластере HDInsight вам также доступно и локальное хранилище HDFS, однако его использование не поощряется, так как оно более затратное (работа с ним приравнивается к работе кластера) и все что храниться в локальном HDFS будет удалено вместе с кластером, когда вы от него отказываетесь.
Версии приложений доступные в HDInsight. На сегодня внутри кластера Hadoop в сервисе HDInsight вам по запросу доступны следующие версии приложений и сервисов:
Компонент | Версия |
Apache Hadoop | 1.2.0 |
Apache Hive | 0.11.0 |
Apache Pig | 0.11 |
Apache Sqoop | 1.4.3 |
Apache Oozie | 3.2.2 |
Apache HCatalog | Merged with Hive |
Apache Templeton | 0.1.4 |
SQL Server JDBC Driver | 3.0 |
Ambari | API v1.0 |
Вы всегда можете найти актуальную информацию о версиях компонент кластера HDInsight по следующей ссылке [10].
Кластер HDInsight может быть создан из портала управления Windows Azure выбрав в меню Data Services пункт HDInsight. Для того чтобы создать кластер вам понадобиться указать наименование, размер кластер и количество узлов данных (Data Nodes), пароль для доступа к кластеру.
Кластер должен содержать как минимум одно ассоциированное хранилище Windows Azure Storage, которое будет постоянным местом хранения данных для этого кластера, при этом кластер и хранилище должны располагаться в одном регионе. Вы можете ассоциировать дополнительные хранилища для кластера с помощью пользовательской опции создания кластера.
Развертывание и конфигурирование кластера в облаке займет всего несколько минут. Как только он будет развернут вы сможете перейти на приветственную страницу, которая предлагает дополнительные ссылки на полезные ресурсы и примеры кода, на которых можно попрактиковаться, работая с Hadoop.
Перейдя на вкладку Dashboard вы увидите информацию о текущем статусте вашего кластера, включая разнообразные метрики: потребление узлов, история задач и ассоциированные хранилища данных.
Перед тем как вы запустите в кластере свою первую задачу вам потребуется подготовить ваше окружение для исопльзования командлетов 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 в переключателе 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:
В этой статье мы рассмотрели насколько это простая задача – создать и запустить кластер HDInsight и начать анализировать свои данные. Но HDInsight предлагает значительно больше возможностей, которые вы можете изучить, например, загрузку своих собственных наборов данных, запуск сложных изощренных задач и анализ результатов. Для того чтобы узнать больше о том, как работать с HDInsight посетите страницу с документацией [11] или используйте следующие прямые ссылки на статьи (на англ.):
Статьи на русском доступны на портале AzureHub.ru:
Для информации о ценах сервиса Windows Azure HDInsight посетите эту страницу [21].
В статье частично была использована информация из этой статьи [22] официального блога.
Несмотря на то, что о коммерческой доступности сервиса было объявлено недавно, большое число компаний и организаций уже попробовали сервис на стадии превью. Среди них отдельно можно выделить следующие примеры:
Город Барселона выбрал инструменты бизнес-аналитики и обработки больших данных от Microsoft, в том числе Windows Azure HDInsight. Анонс [23] и подробное описание [24] примера;
Политехнический институт Вирджинии использует HDInsight для обработки данных генома. Подробное описание примера [25];
Датская исследовательская организация Chr. Hansen разработчик натуральных ингредиентов для продуктовых, фармакологических и сельскохозяйственных производств исопльзует Windows Azure HDInsight для увеличения скорости обработки данных в 100 раз по сравнению со своим прошлым способом. Подробное описание примера [26].
Компания 343 Industries — разработчики игры Halo 4 используют Windows Azure HDInsight для проведения аналитических исследований на основе данных полученных от более 50 миллионов проданных экземпляров игр серии Halo для того, чтобы сделать онлайн-сервисы еще лучше. Подробное описание примера [27].
Медицинская компания Ascribe Ltd из Великобританнии – лидер в своей области – использует Windows Azure HDInsight для улучшения качества клинических исследований, предлагая исследователям значительно более быстрый способ обрабатывать данные большого объема из большого числа источников. Подробное описание примера [28].
Ниже вы найдете ссылки на ресурсы, которые помогут вам в использовании облачной платформы Microsoft:
А если вы уже разрабатываете на Windows Azure или хотите найти разработчиков своего сервиса, посетите сервис appprofessionals.ru [35].
Мы будем рады ответить на ваши вопросы по адресу azurerus@microsoft.com [36]. И ждем вас в Сообществе Windows Azure на Facebook [37]. Здесь вы найдете экспертов (не забудьте задать им вопросы), фотографии и много-много новостей.
Автор: XaocCPS
Источник [38]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/47626
Ссылки в тексте:
[1] Strata + Hadoop World: http://strataconf.com/stratany2013/public/content/home
[2] анонсирован: http://blogs.technet.com/b/microsoft_blog/archive/2013/10/28/announcing-windows-azure-hdinsight-where-big-data-meets-the-cloud.aspx
[3] HDInsight: http://www.windowsazure.com/ru-ru/services/hdinsight/
[4] этой статье: http://habrahabr.ru/post/165265/
[5] свежей статье: http://habrahabr.ru/post/200780/
[6] Hortonworks: http://hortonworks.com/
[7] Windows Azure Storage-Blob (WASB): http://www.windowsazure.com/en-us/manage/services/hdinsight/howto-blob-store/
[8] Blob Storage REST API: http://msdn.microsoft.com/en-us/library/windowsazure/dd135733.aspx
[9] популярные утилиты: http://www.windowsazure.com/en-us/manage/services/hdinsight/howto-upload-data-to-hdinsight/
[10] следующей ссылке: http://www.windowsazure.com/en-us/manage/services/hdinsight/versioning-in-hdinsight/
[11] документацией: http://go.microsoft.com/fwlink/?LinkID=285601
[12] Начало работы с сервисом HDInsight: http://go.microsoft.com/fwlink/?LinkID=286602
[13] Управление кластерами HDInsight: http://go.microsoft.com/fwlink/?LinkID=328984
[14] Программное задание задач Hadoop: http://go.microsoft.com/fwlink/?LinkID=328985
[15] Подключение Excel к Windows Azure HDInsight с помощью Power Query: http://go.microsoft.com/fwlink/?LinkID=328987
[16] Введение в Windows Azure HDInsight: http://msdn.microsoft.com/ru-ru/dn170435
[17] MapReduce для обработки слабоструктурированных данных в HDInsight: http://msdn.microsoft.com/ru-ru/dn170433
[18] Cистема рекомендаций в облаке с помощью Hadoop и Apache Mahout: http://msdn.microsoft.com/ru-ru/jj712218
[19] Выполнение заданий Hadoop в Windows Azure, анализ данных с помощью Excel Hive: http://msdn.microsoft.com/ru-ru/jj712658
[20] Анализ данных Twitter в облаке с помощью Apache Hadoop и Hive: http://msdn.microsoft.com/ru-ru/jj713705
[21] эту страницу: http://go.microsoft.com/fwlink/?prd=12228
[22] этой статьи: http://blogs.msdn.com/b/bigdatasupport/archive/2013/11/01/the-hdinsight-support-team-is-open-for-business.aspx
[23] Анонс: http://blogs.technet.com/b/dataplatforminsider/archive/2013/10/30/revolutionizing-city-planning-in-the-21st-century-with-windows-azure-hdinsight-and-sql-server.aspx
[24] описание: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=710000003415
[25] описание примера: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=710000003381
[26] описание примера: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=710000003368
[27] описание примера: http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=710000002102
[28] описание примера: http://www.microsoft.com/casestudies/Microsoft-SQL-Server-2012/Ascribe-Ltd/Big-Data-Solution-Transforms-Healthcare-with-Faster-Access-to-Information/710000002092
[29] Бесплатный 30-дневный триал: http://www.windowsazure.com/ru-ru/pricing/free-trial/?WT.mc_id=AF078DAA2
[30] Бесплатный доступ: http://msdn.microsoft.com/ru-ru/jj950243
[31] стартапов: http://bit.ly/11VUn4L
[32] партнеров: http://bit.ly/19LE3bS
[33] Центр разработки: http://www.azurehub.ru/
[34] Twitter.com/windowsazure_ru: http://www.twitter.com/windowsazure_ru
[35] appprofessionals.ru: http://www.appprofessionals.ru/
[36] azurerus@microsoft.com: mailto:azurerus@microsoft.com
[37] Сообществе Windows Azure на Facebook: http://www.facebook.com/groups/azurerus/
[38] Источник: http://habrahabr.ru/post/200750/
Нажмите здесь для печати.