Сергей Кузнецов предупреждает: появление принципиально новых технологий работы с Большими Данными тем не менее не позволяет полностью отказаться от использования традиционных СУБД |
Технологии, условно объединяемые в стек Hadoop, за рубежом стремительно набирают популярность и выходят на передний край мировой ИТ-индустрии. Основная причина – фокус на использовании дешевых аппаратных платформ для обработки Больших Данных, мировой объем которых, по некоторым оценкам, в 2020 году достигнет 35 зетабайт (почти 30-кратный рост за десять лет). Аналитики Gartner полагают, что феномен Больших Данных именно сейчас находится на пике маркетинговых ожиданий, что и объясняет повышенное внимание со стороны и заказчиков, и ИТ-компаний.
К счастью, технологии Hadoop/MapReduce, появившиеся в 2004-2005 годах, перестают быть экзотикой и в России. Организаций, инициирующих пилотные или коммерческие проекты на Hadoop, с каждым месяцем становится все больше. На форумах по Большим Данным и по интеграции сложных корпоративных систем, проведенных издательством «Открытые системы» в 2012-м и 2013 году, Большой слон (эмблема Hadoop — прим. ред.) фигурирует повсюду – и в докладах, и в дискуссиях, и в вопросах из зала. Оно и неудивительно: несмотря на обилие публикаций, программных инструментов и специализированных групп в социальных сетях, налицо явный дефицит профессиональных площадок для живого обмена опытом и обсуждения наболевших вопросов в этой новой для заказчиков области.
Стремясь хотя бы частично заполнить образовавшийся вакуум, издательство провело первое специализированное независимое мероприятие, целиком посвященное Hadoop, MapReduce и примыкающим технологиям. Перед аудиторией, объединившей около 50 разработчиков, участников и руководителей проектов в области Больших Данных, выступили представители компаний Oracle и DIS Group, а также ведущие специалисты Российской академии наук, имеющие опыт использования таких технологий в реальных коммерческих или исследовательских проектах.
Открывая семинар, профессор Сергей Кузнецов, один из ведущих отечественных специалистов в области баз данных, в своем докладе остановился на некоторых мифах, сложившихся вокруг технологии MapReduce, на не оправдавшихся ожиданиях, которые поначалу на нее возлагались, и объяснил, почему появление принципиально новых технологий работы с Большими Данными тем не менее не позволяет полностью отказаться от использования традиционных СУБД. Существенные ограничения подхода к анализу данных на основе MapReduce (при всей простоте его идеологии) связаны со сложностью реализации. Его продуктивное использование требует профессионального программирования, тогда как традиционные СУБД ориентированы на широкий круг бизнес-пользователей, являющихся специалистами в области данных, а не разработки приложений. Как следствие, расширение области применения технологий Hadoop/MapReduce возможно только в связке с массивно-параллельными СУБД либо на пути построения самих массивно-параллельных СУБД на основе функций map и reduce. В то же время благодаря наличию эффективных средств синхронизации и программированию, параллельному по данным, MapReduce решает проблему горизонтальной масштабируемости, которая органически присуща СУБД на SQL, но отсутствует у серверных приложений бизнес-аналитики.
Один из возможных путей преодоления ограничений MapReduce – использование коммерческого ПО, основанного на открытом стеке Hadoop. На сегодняшний день все крупные ИТ-вендоры предлагают решения, которые обеспечивают интеграцию Hadoop-приложений с их традиционными продуктами. В последнее время на рынке появилось множество молодых компаний (Cloudera, Hortonworks, MapR Technologies и др.), которые в своих разработках расширяют функциональные возможности Hadoop/MapReduce применительно к анализу Больших Данных, предоставляя заказчикам готовые решения корпоративного уровня. Речь идет, в частности, о потоковой загрузке и совместной обработке данных из разных источников, о всевозможных средствах визуализации данных, прогнозной аналитике и информационной безопасности.
На семинаре были представлены результаты первого в нашей стране сравнительного тестирования платформ Hadoop от разных поставщиков, организованного компанией DIS Group. В поле зрения специалистов компании попали продукты CDH 4.3.1 фирмы Cloudera (основаны на появившейся в сентябре Hadoop 2.0), IBM BigInsights 2.1 (Hadoop 1.1.1) и MapR M5. Перечисленные решения сравнивались по таким критериям, как удобство настройки и администрирования, производительность при записи/чтении файлов и обработке Hive-запросов, отказоустойчивость. Как выяснилось, сильные и слабые стороны есть у каждого продукта. Решение Cloudera вышло победителем в категории «Настройка и администрирование», а разработка MapR немного вырвалась вперед в области отказоустойчивости и показала лучшие результаты в большем числе тестов на производительность. Вместе с тем продукт MapR M5 оказался самым неудобным с точки зрения администрирования.
Коммерческие решения помогают заказчикам пробраться сквозь дебри стека технологий Hadoop для работы с Большими Данными, который уже сегодня представляет собой довольно сложное дерево, распадающееся на такие области, как распределенные файловые системы, собственно базы данных, средства анализа потоковых и графических данных, системы машинного обучения, пакетной обработки и обработки специальных запросов. Почти в каждой из них присутствует от пяти до дюжины продуктов, и разобраться в этом калейдоскопе порой не под силу даже специалистам. На семинаре были рассмотрены архитектура распределенной файловой системы HDFS и основанное на ней хранилище Apache HBase, особенности загрузки данных в Hadoop, программирование функций map и reduce в парадигме «ключ-значение» и соответствующие языки программирования Pig Latin и HiveQL, планировщик задач Oozie, сервис координации распределенных задач ZooKeeper, различные инструменты для сбора журналов из разных источников и их сохранения в HDFS.
Отдельный доклад был посвящен языку Jaql, предназначенному для создания запросов к данным в формате JSON, а также его интеграции с реляционными СУБД, другими языками и некоторыми компонентами стека Hadoop. Объединивший парадигмы императивного языка Pig и реляционного Hive, в наши дни Jaql рассматривается как достойная альтернатива своим предшественникам. Его преимущества особенно ярко проявляются при создании больших и сложных программ для обработки сложных, вложенных данных со слабой структурой (например, для текстовой аналитики).
Участникам семинара был представлен активно развивающийся в последнее время проект Spark, входящий в состав Berkley Data Analysis Stack, а также его применение к задаче анализа социальных графов. Несмотря на совместимость с Hadoop и использование принципов MapReduce, Spark является самостоятельной платформой, которая на ряде задач по производительности превосходит Hadoop в десятки раз. Ключевые особенности Spark — хранение данных в оперативной памяти для быстрой обработки интерактивных запросов, различные схемы оптимизации, оперирование устойчивыми к сбоям распределенными наборами данных. Круг пользователей Spark постоянно расширяется, в частности он взят на вооружение компанией Yahoo.