Большие данные в облаке: Сравнение облачных предложений от Amazon, Google и Microsoft.

Рубрика:

Большие данные и облачная технология неразрывно связаны между собой. Для обработки больших данных необходимы кластеры серверов, которые могут с готовностью обеспечить облака. Таково маркетинговое утверждение, но на что это похоже в действительности? И "cloud computing" и "big data" имеют достаточно широкие определения, в значительной степени пронизанные обманом. Эта статья в некоторой степени прольет свет на эту тему,  выделяя,  что реально, а что надуманно.

IaaS и закрытые облака

Что наиболее часто называют "облачными" составляющими виртуализированных серверов: вычислительный ресурс, который представляет себя как регулярный сервер, оплачиваемый за потребление. Его обычно называют "Инфраструктурой как Сервис" (IaaS), которая предлагается такими платформами, как Rackspace Cloud или Amazon EC2. Вы покупаете время на этих сервисах, устанавливаете и конфигурируете собственное программное обеспечение, такое как, например, кластер Hadoop или база данных NoSQL.

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

Платформы, такие как OpenStack и Eucalyptus стремятся представлять универсальный интерфейс как частным дата-центрам, так и открытым облакам. Всячески поддерживаемый отраслью, OpenStack в настоящее время предлагает вычислительный ресурс (сродни EC2 Amazon) и хранилище (параллельно с Amazon S3).

Что касается больших данных, то несколько инструментов конфигурирования уже явно предназначены для Hadoop: среди них  Dell Crowbar, который предлагает упростить развертывание и конфигурирование кластеров, и Apache Whirr, который специализирован для выполнения сервисов Hadoop и других кластеризируемых систем обработки данных.

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

Решения платформ

Использование IaaS применимо для больших данных, но они обрабатывают только создание вычислительных ресурсов и ресурсов хранения, но не смогут вам помочь на более высоком уровне. В этом может помочь установка Hadoop и Hive.

За пределами возможностей IaaS,  поддержку прикладного уровня работы больших данных  предоставляют несколько облачных сервисов. Эти сервисы, которые иногда относят к управляемым решениям или платформам как сервис (PaaS), устраняют необходимость конфигурировать или масштабировать базы данных или MapReduce, например, уменьшая рабочую нагрузку и бремя тех. обслуживания. Кроме того, провайдеры PaaS могут улучшить эффективность, путем размещения на прикладном уровне, позволив клиенту сэкономить.

В целом рынок PaaS расцветает, с такими крупными игроками, как VMware (Cloud Foundry) и Salesforce (Heroku, force.com). Так как спрос на большие данные постоянно растет, скорее всего эти компании представят свои собственные решения для больших данных, но в этой статье мы будем придерживаться поставщиков, которые уже их реализовали.

Сегодняшние основные провайдеры таких служб big data платформ – это Amazon, Google и Microsoft. Их предложения сведены в итоговую таблицу в конце статьи.  Amazon Web Services и Azure Microsoft в свою очередь размывают границы между инфраструктурой как сервис и платформой: вы можете их смешивать и сочетать. В отличие от них, Google полностью пропускает понятие сервера и фокусируется только приложениях. Среди этих компаний только Amazon может похвастать широким опытом использования своих продуктов.

Amazon Web Services

У Amazon есть существенный опыт в хостинге обработки больших данных. Использование Amazon EC2 для Hadoop был популярным и естественным шагом для многих организаций, начавших работу с большими данными, благодаря расширяемому обеспечению Amazon вычислительной силой. Основываясь на этом, в 2009 году Amazon запустил  Elastic Map Reduce, предоставляя размещенный, масштабируемый сервис Hadoop.

Приложения на платформе Amazon могут выбрать все лучшего из миров IaaS и PaaS. Серверы EC2 общего назначения размещают приложения, которые которые могут получить доступ к соответствующим специализированным решениям, предоставляемыми Amazon.

Кроме Elastic Map Reduce Amazon предлагает несколько других услуг, относящихся к большим данным, таких как Simple Queue Service, который координирует распределенные вычисления и размещенную службу реляционных баз данных. На стороне специалиста больших данных, решения Amazon для Высокопроизводительных вычислений настроены для кластерных вычислений с низкой задержкой, которые необходимы для научных и технических приложений.

Elastic Map Reduce

Elastic Map Reduce (EMR) может быть запрограммирован обычным способом Hadoop, через Pig, Hive или другой язык программирования, и использует службу хранения Amazon S3 для обмена данными.

Доступ к Elastic Map Reduce происходит через наборы средств для разработки и инструменты Amazon, с помощью GUI аналитических и IDE продуктов, такие как предлагаемые Karmasphere. В сочетании с этими инструментами EMR дает мощную возможность для экспериментальной и аналитической работы. Цены Amazon EMR делают его еще более привлекательной перспективой, чем самостоятельно конфигурировать экземпляры EC2, для того, чтобы запустить Hadoop.

Интеграция Hadoop с приложениями, генерирующими структурированные данные, с использованием S3, как основного источника данных, может быть громоздкой. Это вызвано тем, что, подобно HDFS, S3 работает на уровне хранения "блобов" непрозрачных данных. Ответ на это Hadoop - база данных NoSQL HBase, которая интегрируется с остальной частью стека Hadoop. К сожалению, Amazon в настоящее время не предлагает HBase с Elastic Map Reduce.

DynamoDB

Вместо HBase, Amazon предоставляет DynamoDB, свою собственную управляемую масштабируемую базу данных NoSQL. Так как это управляемое решение, это лучший выбор, чем запуск собственной базы данных поверх EC2, и с точки зрения производительности, и с точки зрения экономики.

Данные DynamoDB могут быть экспортированы в и импортированы из S3, обеспечивая функциональную совместимость с EMR.

Google

Облачная платформа Google отличается от своих конкурентов. Вместо виртуализации, он предоставляет программный контейнер приложения с определенными API и сервисами. У разработчиков нет необходимости интересоваться понятием серверов: приложения выполняются в облаке, получая такую вычислительную мощность, которая им требуются в определенных пределах использования ресурсов.

Чтобы использовать платформу Google, вы должны работать в пределах ограничениях его API. AppEngine, сервис хостинга "облачных" приложений Google, предлагает средство MapReduce для параллельного вычисления по данным, но они скорее могут быть частью какого-то большого приложения, чем использоваться в аналитических целях. Вместо этого BigQuery и Prediction API формируют ядро предложения для больших данных от Google, соответственно предлагая средства анализа и обучения машины. Обе этих службы доступные исключительно через REST API, которые соответствуют видению Google для сетевых вычислений.

BigQuery

BigQuery - аналитическая база данных, подходящая для интерактивного анализа по наборам данных порядка 1 TB. Она работает лучше всего над небольшим количеством таблиц с большим количеством строк. BigQuery своим данным предлагает знакомый интерфейс SQL. В этом она похожа на Apache Hive, но типичная производительность быстрее, делая BigQuery хорошим выбором для исследовательского анализа данных.

Получение данных в BigQuery происходит путем прямой загрузки или импорта из системы Google's Cloud Storage. Принимая во внимание, что Amazon S3 позволяет вам сдавать почту на дисках для импорта, у Google в настоящее время нет этой возможности. Потоковая передача данных в BigQuery также не работает, таким образом, для того, чтобы постоянно обновлять данные требуется регулярный импорт. Наконец, поскольку BigQuery только принимает данные, отформатированные как  CSV-файлы, вы должны будете использовать внешние методы, чтобы заранее подготавливать данные. В настоящее время BigQuery находится на этапе в бета-тестирования, к которому любой может присоединиться, а публично она будет доступна в течение 2012 года.

Prediction API

Много методов использования обучения машин четко определены, как, например, классификация, анализ мнений или генерация рекомендации. Для того, чтобы соответствовать этим потребностям, Google предлагает свой продукт Prediction API.

Приложения использующие,  Prediction API, работают, создавая и обучая модель, размещенную в системе Google. После обучения, эта модель может использоваться для прогнозов, таких как обнаружение спама. Google работает над возможностью совместного использования этих моделей, возможно небесплатного. Это позволит использовать ранее обучаемые модели, что сэкономит время и усилия, необходимые для обучения.

Microsoft

Microsoft имеет большие планы относительно Hadoop и больших данных. Предлагая свои платформы данных на Windows Azure в дополнение к Windows Server, Microsoft нацелена на то, чтобы сделать любое или развертывание (собственное или в облаке) одинаково совместимым с ее технологией. Azure во многом пересекается с предложениями веб-сервисов Amazon, предлагая объединение служб IaaS с управляемыми приложениями, такими как SQL Server.

Hadoop – это основа подхода Microsoft к большим данным, поддерживаемого его собственной базой данных и инструментами бизнес-аналитики. Для организаций, которые уже используют платформу Microsoft, Azure является наиболее легким путем начать работать с большими данными. Сам Azure прагматичен в выборе языка, поддерживая технологии, такие как Java, PHP и Node.js в дополнение к собственной технологии Microsoft.

Так же как и Google BigQuery, решение Microsoft Hadoop находится в настоящее время в закрытом тестировании бета-версии и, по прогнозам будет общедоступно где-то в середине 2012 года.

Сравнение облачных платформ для больших данных

Следующая таблица суммирует возможности хранения и анализа данных Amazon, Google и облачных платформ Microsoft. Предварительно исключенны решения IaaS без предложений, предназначенных для больших данных.

 

  Amazon Google Microsoft
Продукт Amazon Web Services Google Cloud Services Windows Azure
Big data хранилище S3 Cloud Storage HDFS on Azure
Рабочее хранилице Elastic Block Store AppEngine (Datastore, Blobstore) Blob, table, queues
База данных NoSQL DynamoDB1 AppEngine Datastore Table storage
Реляционная база данных Relational Database Service (MySQL или Oracle) Cloud SQL (MySQL совместимо) SQL Azure
Хостинг приложений EC2 AppEngine Azure Compute
Служба Map/Reduce  Elastic MapReduce (Hadoop) AppEngine (ограниченная емкость) Hadoop on Azure2
Big data аналитика Elastic MapReduce (Hadoop interface3) BigQuery2 (Tб-масштаб, SQL интерфейс) Hadoop on Azure (Hadoop интерфейс3)
Машинное обучение Через Hadoop + Mahout на EMR или EC2 Prediction API Mahout с Hadoop
Потоковая обработка

Не разбивается по пакетам: используйте

стандартное решение на EC2

Prospective Search API 4 StreamInsight2 ("Проект Austin")
Импорт данных Сеть, физически отправленные диски Сеть   Сеть  
Источники данных Public Data Sets несколько стандартных наборов данных Windows Azure Marketplace
Доступность В открытом доступе Некоторые сервисы в закрытом beta Некоторые сервисы в закрытом beta  

 

1 в открытом бета-тестировании

2 в контролируемом бета-тестировании

3 совместимы с Hive и Pig

4 статус эксперимента.

Заключение

Облачные сервисы для работы с большими данными дают возможность сократить усилия по настройке и конфигурированию собственных кластеров, а также дают уверенность, что вы платите за то, что используете. Самая главная проблема всегда будет связана с местоположением данных, так как отправить данные при этом медленно и дорого. Самыми эффективными решениями больших данных в облаке  будут те, в которых данные также собраны в облаке. Это повод присмотреться к - стимул  EC2, Azure или AppEngine как основным прикладным платформам, и показатель, что таким PaaS конкурентам, как Cloud Foundry и Heroku, нужно будет поставить больший приоритет большим данным.

Автор: 
Edd Dumbill, оригинал статьи: http://radar.oreilly.com/2012/02/big-data-in-the-cloud-microsoft-amazon-google.html