Apache Hadoop

Продукт
Разработчики: Apache Software Foundation
Дата премьеры системы: 2010
Дата последнего релиза: 2014/01/21
Технологии: СУБД

Содержание

Apache Hadoop является свободным Java фреймворком, поддерживающим выполнение распределённых приложений, работающих на больших кластерах, построенных на обычном оборудовании. Hadoop прозрачно предоставляет приложениям надёжность и быстродействие операций с данными. В Hadoop реализована вычислительная парадигма, известная как MapReduce. Согласно этой парадигме приложение разделяется на большое количество небольших заданий, каждое из которых может быть выполнено на любом из узлов кластера. В дополнение, предоставляется распределённая файловая система, использующая для хранения данных вычислительные узлы кластера, что позволяет достичь очень высокой агрегированной пропускной способности кластера. Эта система позволяет приложениям легко масштабироваться до уровня тысяч узлов и петабайт данных.

Источником вдохновения для разработчиков Hadoop послужили материалы по Google File System (GFS).

Hadoop является передовым проектом Apache, в его развитии участвует сообщество разработчиков со всего мира.

Проект Hadoop был назван в честь игрушечного слоненка ребёнка основателя проекта, Doug Cutting. Изначально проект разрабатывался как система для поддержки распределённых вычислений для проекта Nutch. Hadoop содержит платформу для распределённых вычислений, которая изначально была частью проекта Nutch. Она включает в себя Hadoop Distributed File System (HDFS) и реализацию map/reduce.

Согласно докладу (август 2011 года), опубликованному компанией Ventana Research, организации все шире используют систему Apache Hadoop для распределенной обработки данных, однако она не заменяет устоявшиеся технологии, а применяется наряду с ними.

Достоинство Hadoop — способность разбивать очень большие наборы данных на малые блоки, распределяемые по кластеру на основе стандартного оборудования для ускоренной обработки. Компании Facebook, Amazon, eBay и Yahoo, первыми начавшие пользоваться Hadoop, применяют технологию для анализа петабайтов неструктурированных данных, с которыми реляционные системы управления базами данных справлялись бы с трудом. По сведениям Ventana, сотрудники которой провели опрос в 160 с лишним компаниях, все больше предприятий применяют Hadoop для аналогичных целей. В большинстве из них система анализирует огромные объемы сгенерированной компьютерами информации — протоколов работы систем, поисковых результатов и контента социальных сетей. При этом в 66% организаций Hadoop выполняет ранее недоступные им функции анализа. Гораздо реже Hadoop используется для анализа традиционных структурированных данных — транзакций, сведений о клиентах, данных о звонках. Для этих случаев обычно по-прежнему применяются реляционные СУБД.


В новые версии базы данных MS SQL Server и облачной платформы Windows Azure будет интегрирована среда с открытым кодом Open Source-фреймворк Hadoop. Об этом сообщил вице-президент Microsoft Тед Куммерт (Ted Kummert) на открытии конференции Pass Summit 2011 в Сиэтле в октябре. По его словам, интеграция Hadoop с SQL Server и Azure поможет удовлетворить запросы пользователей, которым требуется эффективная обработка больших массивов данных. «Следующий этап — объединить технологии обработки данных с облачными технологиями, и получить возможности, которые невозможно было даже вообразить всего несколько лет назад», - заявил вице-президент перед пятью тысячами пользователей SQL Server.

Hadoop — это свободный фреймворк для организации распределённых вычислений, разрабатываемый сообществом Apache Software Foundation на основе технологий MapReduce и Google File System Storage. Hadoop используется в таких крупных веб-проектах, как Facebook, Twitter, Rackspace и EBay, а также в коммерческих программных продуктах IBM, EMC, Dell и Oracle. Крупнейший вклад в развитие проекта вносит Yahoo — в частности, её спин-офф Hortonworks, с которым Microsoft и заключила соглашение о интеграции фреймворка в свои продукты.

Microsoft не впервые обращает внимание на Hadoop: так, фреймворк некоторое время использовался для реализации семантического поиска в Bing, пока не был заменен закрытым аналогом. Более масштабных попыток интеграции компания не предпринимала, вместо этого концентрируясь на разработке Dryad, закрытого аналога Hadoop на основе собственной технологии Cosmos. В отличие от Hadoop, разрабатываемого на Java, этот продукт Microsoft базируется на .NET, и его разработка продолжится параллельно с внедрением открытого фреймворка.

В рамках соглашения о стратегическом сотрудничества с Hortonworks, Microsoft уже выпустила для MS SQL Server 2008 R2 обновление Hadoop Connectors, облегчающее обмен данными между двумя системами. Сейчас компании совместно трудятся над созданием дистрибутива Hadoop, адаптированного для работы под Windows, в отличие от оригинала, рассчитанного на использование в Linux-системах. Microsoft утверждает, что он будет полностью совместим с оригинальным продуктом от Apache, а также обещает открыть код проекта для сообщества.

Первыми Hadoop от Microsoft увидят пользователи Azure в конце декабря 2011 года. Благодаря нововведению, разработчики, использующие облачную платформу, смогут создавать на ней приложения, не устанавливая Azure в своих дата-центрах.

Новая версия MS SQL Server, официально сменившая кодовое имя Denali на SQL Server 2012, увидит свет в 2012 году, и будет содержать и базу данных MS SQL Server, и Hadoop. Первая будет применяться для обработки структурированных данных, Hadoop же возьмёт на себя обработку неструктурированных массивов информации. Два компонента планируется связать между собой через Hadoop Connectors.

2016: DIY Hadoop: надежды и риски

Сентябрь 2016 года. В ожидании «Интернета вещей» (IoT) и взрывного роста объемов данных, компании всех размеров и почти во всех отраслях пытаются контролировать и управлять растущими объемами информации. В своих попытках справиться с этой лавиной, в ряде организаций разворачивают технологические решения на платформе Apache Hadoop.

Hadoop, (2015)

Но приобретение, разворачивание, настройка и оптимизация кластера Hadoop собственными силами для использования в рамках действующей инфраструктуры может оказаться значительно более сложной задачей, нежели полагают в компаниях - даже при участии специалистов, способных выполнять эту работу[1].

Управление большими данными — не только вопросы извлечения и хранения информации. Требуется решать множество разнообразных аспектов конфиденциальности и безопасности. Недочеты в информационной безопасности могут не только нанести ущерб репутации (что в последние годы испытали на себе такие компании, как Sony и Target), но и столкнуться с санкциями регулирующих органов.

В начале 2015 года Федеральная торговая комиссия США (FTC) опубликовала отчет об Интернете вещей, содержащий руководящие принципы защиты личной информации потребителей и обеспечения безопасности. В документе Careful Connections: Building Security in the Internet of Things , («Тщательно продуманные соединения: обеспечение безопасности в Интернете вещей») Федеральная торговая комиссия настоятельно рекомендует компаниям применять подход на базе рисков и следовать лучшим методикам, разработанным экспертами по вопросам безопасности, таким как использование сильного шифрования и аутентификации.

FTC отметила, что и бизнес, и правоприменительные органы заинтересованы в соответствии IoT-решений ожиданиям потребителей в вопросах безопасности. Компаниям, обрабатывающим IoT-данные, отчет рекомендует применять проверенные методики, в числе которых:

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

Руководителей компаний и ИТ-служб, которые решат следовать рекомендациям FTC в отношении безопасности больших данных, с большой вероятностью ожидают трудности, в частности при попытке интеграции Hadoop с действующей ИТ-инфраструктурой: проблема Hadoop в том, что продукт разрабатывался изначально без учета требований к безопасности, он создавался исключительно для решения задач хранения и быстрой обработки больших объемов распределенных данных. Это привело к возникновению угроз:

  • кластеру Hadoop, организованному собственными силами, свойственны риски - он часто разрабатывается без должных средств обеспечения безопасности, небольшой группой специалистов, в лабораторных условиях отдельно от производственной среды. В процессе развития кластера от небольшого проекта до корпоративной среды Hadoop каждый период роста — разворачивание пакетов исправлений, настройка, контроль версий модулей Hadoop, библиотеки ОС, утилиты, управление пользователями и т.д. — становится более сложным и трудоемким.
  • в основе Hadoop лежит принцип «демократизации данных» (все данные доступны всем пользователям кластера), что приводит к сложностям соблюдения ряда нормативных требований, таких как закон о преемственности и подотчетности медицинского страхования (Health Insurance Portability and Accountability Act, HIPAA) и стандарт безопасности данных индустрии платежных карт (Payment Card Industry Data Security Standard, PCI DSS). Это связано с отсутствием средств управления доступом к данным, в том числе средств управления паролями, авторизации для доступа к файлам и базам данных и проведения аудита.
  • при использовании среды Hadoop сложно определить происхождение конкретного набора данных и источники данных для него. В результате критически важные бизнес-решения могут основываться на анализе подозрительных или сомнительных данных.

Самостоятельное разворачивание кластеров Apache Hadoop привлекает многих руководителей компаний и ИТ-служб кажущейся экономией затрат за счет использования ординарного оборудования и бесплатного программного обеспечения. Однако несмотря на первоначальную экономию, кластер Hadoop, созданный собственными силами, не всегда является оптимальным вариантом для организаций, где требуется корпоративное решение для работы с большими данными - с точки зрения, как безопасности, так и производительности.

2015: Вклад Huawei в развитие Hadoop

Вклад Huawei в развитие Hadoop

2014

HDP 2.0

22 января 2014 года компания Microsoft сообщила о выходе Hortonworks Data Platform 2.0 для Windows. Продукт сертифицирован для Windows Server 2008 R2/Windows Server 2012/2012 R2.

В обновленной платформе разработчикам доступен удобный Windows-инсталлятор для развёртывания Hadoop 2.0 на одном компьютере. В наличии "песочница" (sandbox), эмулирующая кластер из нескольких узлов.

В рамках выхода HDP 2.0 для Windows компания Hortonworks сообщила об обновлении NoSQL СУБД Apache HBase до версии 0.96 (теперь можно делать слепки БД).

Начата вторая фаза проекта Stinger — ускорителя для движка Apache Hive, поддерживающего SQL-запросы к Hadoop. На фоне недавней публикации фирмой Cloudera результатов тестирования аналогичного движка Impala, опередившего Hive в десятки раз, этот анонс ускорения Hive в 100 раз на петабайтных объёмах весьма актуален.

Apache Hadoop 2.0

Глав­ным нов­ше­ством плат­фор­мы ста­нет ме­ха­низм управ­ле­ния за­да­ча­ми Yarn, при­зван­ный упро­стить раз­ра­бот­ку при­ло­же­ний Hadoop. До сих пор об­ра­бот­ка задач в Hadoop, осу­ществ­ля­е­мая с по­мо­щью ме­ха­низ­ма MapReduce, была воз­мож­на толь­ко в по­оче­ред­ном ре­жи­ме. Yarn же поз­во­лит вы­пол­нять за­да­чи па­рал­лель­но. Новый ме­ха­низм со­зда­ет кон­тей­не­ры для при­ло­же­ний, сле­дит за их по­треб­но­стя­ми в ре­сур­сах и вы­де­ля­ет до­пол­ни­тель­ные по необ­хо­ди­мо­сти. Если MapReduce од­но­вре­мен­но от­ве­чал за пла­ни­ро­ва­ние задач и управ­ле­ние ре­сур­са­ми, то Yarn раз­гра­ни­чи­ва­ет эти функ­ции.

По мне­нию экс­пер­тов, бла­го­да­ря но­во­му ме­ха­низ­му пла­ни­ро­ва­ния задач для Hadoop может по­явить­ся целая волна новых ана­ли­ти­че­ских при­ло­же­ний. Этот про­цесс уже на­чал­ся: на­при­мер, сред­ства­ми Yarn поль­зу­ет­ся Apache Tez, система ана­ли­за дан­ных в ре­жи­ме ре­аль­но­го вре­ме­ни, уско­ря­ю­щая вы­пол­не­ние за­про­сов за счет об­ра­бот­ки в опе­ра­тив­ной памяти.

В Hadoop 2.0 по­явил­ся еще ряд новых ком­по­нен­тов, в том числе сред­ства обес­пе­че­ния вы­со­кой го­тов­но­сти и рас­ши­ре­ния мас­шта­ба ин­ди­ви­ду­аль­ных кла­сте­ров (среды Hadoop могут со­сто­ять из несколь­ких кла­сте­ров): каж­дый из них те­перь может со­дер­жать до 4 тыс. серверов.

Платформа Hadoop станет стандартом индустрии в 2015 году

1 декабря 2014 года аналитики компании Forrester Research озвучили прогноз, согласно которому платформа Hadoop от Apache станет стандартом де-факто для ИТ-инфраструктуры всех крупных компаний в 2015 году. Предполагается, заметный рост числа специалистов и скорости внедрения систем на платформе Hadoop[2].

На рынке наблюдается соответствующая тенденция к обязательной интеграции Hadoop, которую аналитики назвали «хадупономика» (Hadooponomics), она должна обеспечивать способность линейного масштабирования как хранения, так и обработки данных. «Хадупономика» тесно связана с возможностью дальнейшего активного применения облачных решений на крупных предприятиях.

Согласно отчету аналитиков, не все предприятия активно применяют Hadoop, однако важность платформы доказали многие лидирующие в своих отраслях индустрии компании: WalMart, Fidelity Investments, Sears, Verizon, USAA, Cardinal Health, Wells Fargo, Procter & Gamble, Cablevision, Nasdaq, AutoTrader, Netflix и Yelp.

Ожидается, что ANSI-совместимые возможности SQL на платформе Hadoop предоставят Hadoop все возможности для того, чтобы стать полезной платформой данных для предприятий, так как эти опции будут знакомы профессионалам в сфере управления данными и доступны на существующих системах. Все это позволит создать песочницу для анализа данных, которая не была доступна ранее.

«Облачная эластичность», возможность синхронизации вычислительных и сетевых мощностей с хранимыми данными станет одним из ключевых факторов для снижения расхода средств, считают эксперты. Поэтому, ожидается, что платформа Hadoop будет все более активно применяться в облачных решениях на фоне растущего спроса на специализированную аналитику.

Весьма вероятным видится появление новых дистрибутивов Hadoop из аналогов от HP, Oracle, SAP, Software AG и Tibco. Microsoft, Red Hat, VMware и другие вендоры операционных систем могут не найти причин для отказа от интеграции платформы в собственные ОС.

Важный фактор влияния - наличие квалифицированных кадров, способных работать с платформой Hadoop. Они должны появиться, считают эксперты. Благодаря их участию станет возможной быстрая и более эффективная реализация проектов Hadoop.

Сергей Заблодский, директор отделения хранилищ данных IBS, считает: "Сильное преувеличение - Hadoop в качестве обязательного компонента ИТ-архитектуры большинства компаний. Даже если мы говорим об основном применении Hadoop, то есть обработке больших данных, далеко не все компании используют для этого Hadoop-кластеры. Необходимо понимать, что сама проблематика больших данных возникла не вчера и Hadoop - не единственный инструмент, позволяющий работать с такими данными. Сегодня есть целый ряд успешных альтернативных решений как среди коммерческого ПО, так и среди ПО с открытым кодом. Безусловно, Hadoop популярен и у него есть своя ниша, а его применение для решения определенных задач будет расти, но об обязательности этой технологии я бы не говорил, так как есть задачи в области больших данных, для которых Hadoop – не лучший выбор. Для большинства заказчиков внедрение Hadoop сегодня не является актуальной задачей и не станет такой в ближайшей перспективе. Пока что проекты с использованием Hadoop на нашем рынке — это, скорее, эксперименты с технологией и попытки нащупать границы применимости. Достаточно активно осваивают Hadoop некоторые телеком-операторы и банки, но далеко не всегда это попытки решать аналитические задачи. Одно из направлений экспериментов — дешевые системы хранения малоиспользуемых неструктурированных данных. В остальных отраслях значимого интереса к решениям такого класса пока не заметно: для большинства насущных задач достаточно классических технологий работы с данными и программно-аппаратных комплексов».

2010: Apache Hadoop 0.23

Разрабатываемая сейчас версия 0.23 распределенной системы обработки данных Apache Hadoop сможет работать на кластерах из 6 тыс. машин, в каждой из которых установлено по 16 и более процессорных ядер и параллельно выполнять до 10 тыс. заданий, рассказал вице-президент Apache Foundation и основатель компании Hortonworks Арун Марти на конференции O'Reilly Strata. Версия 0.23 сейчас находится на стадии альфа-тестирования. Ее выход должен состояться в текущем году. Уже сейчас Hadoop испытана на кластерах из 4 тыс. машин.

В новой версии Hadoop планируется реализовать также поддержку федерации и средств высокой доступности в файловой системе HDFS. Платформа MapReduce, на базе которой построена Hadoop, тоже будет обновлена. Ее новая версия под условным названием Yarn, обладает повышенной производительностью, в особенности на больших кластерах.

На той же конференции компания Hortonworks, специализирующаяся на работе с системами Hadoop, и компания MarkLogic объявили об интеграции своих платформ, благодаря чему у пользователей появится возможность объединить средства MapReduce со средствами индексации и интерактивного анализа в реальном времени MarkLogic.

Аналитики Gartner уверены, что к 2015 году две трети пакетов аналитических приложений с продвинутыми функциями аналитики будет в той или иной форме включать в себя кластерную СУБД Hadoop. Хотя пока для работы с Hadoop требуются дефицитные высококвалифицированные специалисты, в организациях начинают понимать возможности решения в области обработки Больших Данных, в особенности неструктурированных, текста, анализа поведения и так далее, отмечают аналитики. Тем временем разработчики аналитических пакетов делают следующий шаг: включают Hadoop непосредственно в свои пакеты. А это означает, что компаниям пора задуматься об обеспечении совместимости инфраструктуры с Hadoop, определить аналитические функции, которые используют в работе бизнес-подразделения и выявить ценные внутренние проекты, основанные на Hadoop.

По мере роста популярности Hadoop войдет, по терминологии Gartner, в фазу «долины разочарования» — когда после начального подъема пользователи потеряют интерес к проекту, не достигшему ожидаемых результатов. Далее в цикле развития технологии идет «подъем просвещения» и выход на «плато продуктивности», когда технология становится зрелой.

Почему проекты Hadoop-аналитики часто не достигают целей

Син Сачтер, сооснователь и CEO компании Pepperdata, создающей ПО оптимизации кластеров в реальном времени, как человек, управлявший первым коммерческим опытом внедрения Hadoop во времена своей работы в команде Yahoo, знаком с технологическими недостатками Hadoop, влияющими на бизнес. Для оптимизации использования Hadoop компании должны быть заранее хорошо знакомы с его наиболее распространенными изъянами, многие из которых влияют на надежность, предсказуемость и обозримость. Ниже на базе информации от Сачтера мы исследуем главные причины, почему Hadoop может не давать ожидаемой отдачи[3].

Задания заканчиваются отказом или сильно тормозят

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

Невозможность отслеживать производительность кластера в реальном времени

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

Недостаток макроуровневой видимости и контроля над кластером

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

Недостаточная возможность устанавливать и обеспечивать приоритеты заданий

Хотя планировщики заданий и диспетчеры ресурсов предоставляют базовые возможности, например, организацию последовательности заданий, планирование по времени и событиям и выделение узлов, они недостаточны для обеспечения максимально эффективного использования ресурсов кластера при выполнении заданий.

Недоиспользуемые и растрачиваемые ресурсы

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

Недостаточная возможность контролировать выделение ресурсов кластера в реальном времени

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

Отсутствие гранулярного обзора использования ресурсов кластера

Когда задания завершаются отказом или с большой задержкой, операторам и администраторам Hadoop трудно диагностировать проблемы производительности. Hadoop не дает способов мониторинга и анализа производительности кластера с достаточным контекстом и детальностью. Например, невозможно изолировать проблемы по пользователю, заданию или задаче и идентифицировать узкие места, связанные с сетью, ОЗУ или диском.

Невозможность предсказать, когда кластер исчерпает возможности

Дополнительные и более многообразные задания, расширяющиеся объемы и разнообразие типов данных, усложнение запросов и многие другие факторы со временем все больше нагружают ресурсы кластера. И зачастую нужду в добавочных кластерных ресурсах осознают лишь после аварии (скажем, перестает работать сайт для клиентов или не создается критически важный отчет). Итогом могут стать разочарование клиентов, упущенные бизнес-возможности, незапланированные нужды в капитальных затратах и т. д.

Конкуренция HBase и MapReduce

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

Отсутствие важных визуальных панелей

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

Примечания