В 2010 году Apache Hadoop, MapReduce и ассоциированные с ними технологии привели к распространению нового явления в сфере информационных технологий, названного «большими данными» или «Big Data». Понимание того, что из себя представляет платформа Apache Hadoop, зачем она нужна и для чего её можно использовать потихоньку проникает в умы специалистов по всему миру. Зарожденный, как идея одного человека, и быстро выросший до промышленных масштабов, Apache Hadoop стал одной из самых широко обсуждаемых платформ для распределенных вычислений, а также платформой для хранения неструктурированной или слабо структурированной информации. В этой статье я хотел бы подробнее остановиться на самой платформе Apache Hadoop и рассмотреть коммерческие реализации, предоставляемые сторонними компаниями, и их отличия от свободно распространяемой версии Apache Hadoop.
Перед тем, как приступить к рассмотрению коммерческих реализаций, я хотел бы остановиться на истории зарождения и развития платформы Apache Hadoop. Создателями и идейными вдохновителями Apache Hadoop являются Дуг Каттинг и Майкл Кафарелла, которые в 2002 году начали разрабатывать поисковую систему в рамках проекта Nutch в режиме частичной занятости. В 2004 году к проекту Nutch прикрутили разрабатываемую в то время парадигму распределённых вычислений MapReduce, а также распределенную файловую систему. В то же время Yahoo размышляло о разработке платформы распределённых вычислений для индексирования и поиска страниц в Интернете. На самом деле, конкуренты Yahoo не спали и тоже задумывались над этим вопросом – это привело к тому, что платформ для распределенных вычислений к настоящему времени достаточно много, например, Google App Engine, Appistry CloudIQ, Heroku, Pervasive DataRush и т.д. В Yahoo справедливо решили, что разработка и поддержка собственной, проприетарной платформы распределенных вычислений обойдется дороже и качество результата будет ниже, чем инвестирование в open source платформу. Поэтому они начали поиск подходящих решений среди open source проектов, разумно рассуждая, что суровый и непредвзятый взгляд сообщества позволит им повысит качество, и в тоже время снизить расходы на сопровождение платформы, так как её развитием будет заниматься не только Yahoo, а все свободное IT сообщество. Довольно быстро они натолкнулись на Nutch, который в то время выгодно выделялся на фоне конкурентов уже подтвержденными результатами работы и решили инвестировать в развитие этого проекта. Для этого в 2006 году они пригласили Дуга Каттинга возглавить специально выделенную команду нового проекта под названием e14, целью которого являлась разработка инфраструктуры распределенных вычислений. В том же году Apache Hadoop оформляется, как отдельный open source проект.
Можно сказать, что от решения инвестировать в развитие open source платформы распределенных вычислений, Yahoo получило довольно ощутимую пользу, так же, как и Apache Hadoop получил толчок в развитии с помощью огромной корпорации. Apache Hadoop помог Yahoo привлечь в компанию ученых с мировым именем и создать передовой центр разработок и исследований, который сейчас является одним из ведущих центров по поиску, рекламе, обнаружению спама, персонализации и многим другим вещам, относящимся к Интернету. Многие вещи Yahoo не пришлось разрабатывать с нуля, он воспользовался плодами сторонних разработчиков, например, он использовал Apache HBase и Apache Hive для решения своих задач. Так как Apache Hadoop является открытой платформой, то сейчас Yahoo не требуется обучать специалистов, он может найти на рынке труда таких людей, которые уже имеют опыт работы с Hadoop. Если бы Yahoo решил разрабатывать свою собственную платформы, то он был бы вынужден обучать специалистов внутри компании для работы с ней. Apache Hadoop является в какой-то мере индустриальным стандартом и разработка этой платформы ведется многими компаниями и сторонними разработчиками – так что Yahoo сэкономил на постоянном вложении денег в развитие этой платформы и избавился от проблемы постоянного устаревания программного обеспечения. Всё это позволило Yahoo уже в 2008 году запустить Yahoo WebSearch, используя кластер Apache Hadoop из 4000 машин.
Впрочем, развитие Apache Hadoop в Yahoo не было безоблачным на всем протяжении своего пути. Так, в сентябре 2009 года, Дуг Каттинг, не найдя общего языка с руководством Yahoo, уходит в калифорнийский стартап Cloudera, который занимается коммерческой разработкой и продвижением Apache Hadoop на рынке решений для больших данных. Честно говоря, у меня нет сведений, в чем именно не сошлись их взгляды, но факт остается фактом – обидевшись на такое решение Дуга Каттинга, Yahoo дает деньги в 2011 году на создание компании под названием Hortonworks, основной деятельностью которой является также коммерциализация и продвижение платформы Apache Hadoop. Именно об этих компаниях пойдет речь дальше в этой статье. Я попытаюсь сравнить два решения для распределенных вычислений, поставляемые этими компаниями, а также попытаюсь выяснить, почему за Apache Hadoop надо платить.
Cloudera Inc.
В октябре 2008 года в Америке три инженера из Google, Facebook и Yahoo и один менеджер из Oracle создали новую компанию Cloudera. Они сделали ставку на распределенные системы вычислений на основе MPP архитектуры. Разумно рассудив, что объем данных в мире, которые необходимо анализировать, растет с каждым днем, и количество компаний, нуждающихся в инструментах для такого анализа данных, будет постоянно расти, они положились на то, что с созданием компании, которая будет иметь достаточный уровень и квалификацию в этой области, они смогут зарабатывать достаточно много. Так как своего продукта у них не было, а также не было времени его разрабатывать, они решили взять какой-нибудь open source проект и построить свой бизнес вокруг него. Apache Hadoop подходил как нельзя лучше по нескольким причинам – они все его знали, работали с ними и понимали, что этот проект обладает большим потенциалом — поэтому в марте 2009 года компания Cloudera анонсировала так называемую Cloudera’s Distribution including Apache Hadoop, сокращенно CDH, представляющую собой дистрибутив Apache Hadoop (HDFS, MapReduce, Hadoop Common), включающий ряд смежных программ и библиотек, таких как Apache Flume, Apache Hive, Hue, Apache Mahout, Apache Oozie, Apache Pig, Apache Sqoop, Apache Whirr и Apache Zookeeper.
Однако дистрибутив, состоящий из сборки open source библиотек и программ, никому не продашь, поэтому было решено разработать свое собственное программное обеспечение для Apache Hadoop. В компанию были привлечены создатели Hadoop – Дуг Каттинг и Майкл Кафарелла. Решено было разработать инструмент для развертывания, мониторинга и управления кластером Apache Hadoop – Cloudera Manager. Этот инструмент автоматизирует процесс развертывания кластера Apache Hadoop, предоставляет возможности для мониторинга в режиме реального времени текущих активностей и состояния отдельных узлов, составляет heatmaps, может генерировать сообщения на определенные события, управляет доступом пользователей, хранит историческую информацию об использовании кластера, собирает логи с узлов и дает возможность их просматривать.
Все это позволило компании Cloudera выпустить на рынок пакет услуг под названием Cloudera Enterprise, состоящий из трех продуктов:
где
CDH – это дистрибутив Apache Hadoop (HDFS, MapReduce и MapReduce2, Hadoop Common), включающий ряд смежных программ и библиотек, таких как Apache Flume, Apache Hive, Hue, Apache Mahout, Apache Oozie, Apache Pig, Apache Sqoop, Apache Whirr и Apache Zookeeper.
Cloudera Manager — инструмент для развертывания, мониторинга и управления кластером Apache Hadoop.
Cloudera Support – профессиональная поддержка, предоставляемая специалистами Cloudera по проблемам, относящимся к CDH и Cloudera Manager.
Всё это продается в виде подписки и стоит достаточно дорого – например, Cloudera Manager стоит $4000 за узел. Несмотря на это, для некоторых компаний такое решения является разумным, так как Apache Hadoop обладает высокой стоимостью поддержки и администрирования. В частности, для написания MapReduce задач необходим штат квалифицированных специалистов Java, стоимость которых на рынке труда достаточно высока. Тем не менее, услугами компании Cloudera пользуется ограниченное количество компаний – все стараются обходиться собственными силами. Это происходит из-за того, что, по сути, единственной, собственной разработкой Cloudera является Cloudera Manager, да и тот стоит намного больше, чем умеет. По моему мнению, пакет Cloudera Enterprise на текущий момент не стоит своих денег, так как по существу единственная полезная вещь, предоставляемая Cloudera в рамках этого пакета – это Cloudera Manager. Со всем остальным достаточно квалифицированный специалист при наличии времени может разобраться самостоятельно. Основное преимущество, используемое компанией Cloudera на сегодняшний момент – это ограниченное количество специалистов по Apache Hadoop в мире, что позволяет Cloudera спекулировать на рынке предоставления технической экспертизы по Apache Hadoop.
Как бы то ни было, 23 мая 2012 года стала доступна для скачивания с сайта hadoop.apache.org версия Apache Hadoop 2.0.0 Alpha, а уже 5 июня 2012 года Cloudera с большой помпой анонсировало четвертую версию CDH, которая первая в мире поддерживает Apache Hadoop 2.0.0 Alpha codebase. По мнению большинства, версия Apache Hadoop 2.0.0 Alpha является «сырой» и нестабильной в работе, и некоторые компании предпочитают подождать, пока пройдет стабилизационный период, во время которого большая часть ошибок будет исправлена. Несмотря на это, Apache Hadoop 2.0.0 обладает некоторыми преимуществами по сравнению с первой версией, главными из которых являются следующие:
- High Availability для NameNode
- YARN/MapReduce2
- HDFS Federation
Как я писал раньше, все это работает пока крайне нестабильно и не рекомендуется устанавливать в продуктивную среду. Однако лавры первопроходца не дают Cloudera спать спокойно, что побудило их выпустить CDH4 на основе Apache Hadoop 2.0 первой в мире. Тем самым Cloudera заявила о своем лидерстве в сфере предоставления платформы для распределенных вычислений, потому как ни у кого больше нет дистрибутива на основе Apache Hadoop 2.0. Что же предлагает главный конкурент Cloudera в этой сфере – Hortonworks?
Hortonworks
Появление Cloudera заставило многих людей задуматься о перспективах рынка в этой сфере, возникло много желающих стать ведущими лидерами, задающими основной вектор развития и, соответственно, обладающими наиболее полной экспертизой и квалификаций в этой области. Поэтому в 2011 году была основана компания Hortonworks, основателями которой являлись инженеры, в основном из компании Yahoo, сумевшие привлечь по старым связям финансирование со стороны Yahoo и инвестиционного фонда Benchmark Capital. Компания занялась тем же, чем и Cloudera – коммерциализацией Apache Hadoop. Совсем недавно, 12 июня 2012 года, за день до проведения Hadoop Summit 2012, компания Hortonworks анонсировала свою платформу для распределенных вычислений на основе Apache Hadoop 1.0 – Hortonworks Data Platform, сокращенно HDP. Архитектура этой платформы представлена на картинке ниже:
Если быть кратким, то эта платформа предоставляет всё то же самое, что и Cloudera CDH4, но только на основе Apache Hadoop 1.0 codebase. Есть одно небольшое отличие – в составе HDP компания Hortonworks поставляет Hortonworks Management Center(HMC) на основе Apache Ambari, который выполняет те же самые функции, что и Cloudera Manager, но при этом совершенно бесплатен, что является очевидным преимуществом, так как Cloudera Manager по непонятным причинам стоит огромных денег (тут необходимо уточнить, что есть бесплатная версия Cloudera Manager с урезанной функциональностью и лимитом в 50 узлов). Одним из преимуществ своей платформы HDP компания Hortonworks почему-то декларирует возможность скачать в качестве дополнения ETL и ELT решение от компании Talend – Talend Open Studio for Big Data. Надо сказать, что это решение можно совершенно свободно скачать в качестве ETL, ELT инструмента и для Cloudera CDH4, так что это не является преимуществом, присущим только HDP. Я имел знакомство с Talend Open Studio и могу сказать, что как ELT и ETL решение – это хороший выбор, обладающий богатой функциональностью и стабильным, предсказуемым поведением.
Так как HDP использует Apache Hadoop 1.0 в качестве базы, то он лишен некоторых достоинств, которыми обладает CDH4. В частности, это HA для NameNode, YARN/MapReduce2, HDFS Federation. Однако, для решения проблем, связанных с HA для NameNode, Hortonworks предлагает поставить дополнение, основанное на платформе VMware vSphere, которое может предоставить отказоустойчивость на уровне виртуальной машины для NameNode и JobTracker. По моему мнению, нетривиальное решение, имеющие сомнительные выгоды и ведущее к дополнительным расходам.
Свой бизнес Hortonworks решил также построить на платном предоставлении поддержки по своей платформе HDP. Поддержка продается в виде годовой подписки и разделена на уровни. Сложно сказать об уровне качества поддержки компании Hortonworks, так как я не нашел ни одного клиента который использовал бы её на сегодняшний момент. Про поддержку Cloudera есть негативные отзывы – очень долгий период ответа, но это можно сказать про поддержку практически любого производителя.
Сейчас, Apache Hadoop и сопутствующее ПО, из open source проекта превращается в законченное решение, развиваемое силами нескольких компаний в мире. Он уже вырос из стен лаборатории и готов на практике подтвердить свою применимость, как enterprise решение, для анализа и хранения сверхбольших объемов данных. На сегодняшний момент, компания Hortonworks находиться в роли догоняющего, в то время, как Cloudera безусловно является лидером со своей платформой CDH4. На самом деле, в текущий момент множество компаний оценило перспективы этого рынка и пытается закрепиться на нем с теми или иными своими решениями, имеющими функциональность, основанную на Apache Hadoop или имеющими возможность работы с ним. Все они находятся далеко позади двух лидеров. Это значит, что на сегодня сложилась такая ситуация, что наиболее полными и работающими дистрибутивами, включающими в себя все необходимые библиотеки и программы, обладают две компании на рынке – это Cloudera c CDH3 и CDH4 и Hortonworks с HDP. Именно эти решения имеют право на жизнь в качестве enterprise инструмента для анализа в компаниях, где это необходимо. Всё же, на текущий момент, когда специалистов на рынке очень мало, разворачивание Apache Hadoop и его настройка собственными силами – это долговременный процесс с неопределенным результатом, т.е. можно сказать что это долгий путь проб и ошибок экспериментатора с теми или иными методами, предоставляемыми open source. В случае с CDH4 и HDP – это работа с решениями, уже доказавшими свою работоспособность, и предоставлением поддержки, когда это необходимо. Поэтому вопрос платить или не платить за Apache Hadoop не стоит – если планируется использовать его для экспериментаторских целей или компания готова вкладывать время и деньги в обучение собственных специалистов, то, конечно же, платить за него не стоит. Однако если Apache Hadoop будет использоваться в качестве enterprise решения, то лучше иметь за плечами поддержку с накопленной базой знаний по решениям различных проблем и имеющую глубокое понимание принципов работы.
Решения различных компаний, коммерциалиризующих Hadoop тем или иным образом
Сайт Cloudera Inc
Сайт Hortonworks
Краткая история Apache Hadoop от создателя