Big Data. Проблема и решения
В июне 2011 года было опубликовано исследование [10], проведенное аналитическим агентством IDC по заказу компании EMC, согласно которому объем информации в мире увеличивается более чем в два раза каждые два года. Согласно этому исследованию, в 2011 году будет создано и реплицировано 1,8 зеттабайт данных – быстрее, чем по закону Мура.
Объем данных генерируемый и собираемый современными научно-исследовательским центрами, финансовыми институтами, социальными сетями действительно огромен. На январь 2012 года в дата-центрах Facebook хранится более 15 млрд. изображений, нью-йоркская фондовая биржа NYSE создает и реплицирует ежедневно около 1 Тб данных, большой адронный коллайдер генерирует около 40 Тб экспериментальных данных в день.
Но кроме задачи сохранения данных, с которыми современные аппаратно-программные средства справляются, в общем-то, успешно, стоят задачи и аналитической обработки этих данных в режиме максимально приближенном к режиму реального времени.
Принципиально иных, чем привычные, разработанные еще 10-15 лет назад, подходов к обработке данных требуют и задачи прогнозной аналитики, имитационного моделирования, статистического анализа, машинного обучения.
Одним из наиболее эффективных подходов к обработке большого количества информации* является появление в конце 2000-х годов [9] группы концепций, методов и инструментов обработки данных под общим названием «Большие Данные» («Big Data»).
Аналитики Gartner в своих статьях [11, 12] описали три основных характеристики «Больших Данных», обозначаемых как «три V»:
- объём (англ. volume) – физический объем хранимых данных;
- скорость (англ. velocity) – скорость изменчивости данных и, как следствие, последующий анализ этих изменений;
- многообразие (англ. variety) – разнообразие обрабатываемых типов данных: как структурированные, так и неструктурированные данные.
В 2010 году появляются первые продукты и решения, относящихся исключительно и непосредственно к проблеме обработки Больших Данных. К 2011 году большинство крупнейших поставщиков информационных технологий для организаций в своих деловых стратегиях используют понятие о Больших Данных, в том числе IBM [13], Oracle [14], Microsoft [15], Hewlett-Packard [16], EMC [17].
Одной из ключевых технологий реализации концепций Big Data является платформа Hadoop.
Hadoop – это программная платформа (Software Framework) построения распределенных приложений для массово-параллельной обработки (Massive Parallel Processing, MPP) данных. В платформе Hadoop условно можно выделить 2 основных компонента:
- Hadoop Distributed File System (HDFS) – распределенная файловая система, которая обеспечивает высокоскоростной доступ к данным приложения;
- MapReduce – программная платформа для распределенной обработки больших объемов данных на вычислительном кластере.
Несмотря на свою «молодость» – проект развивается с 2005 года – Hadoop уже имеет успех среди крупнейших интернет-сервисов и ИТ-компаний, таких как Yahoo, Facebook, AOL, Twitter, Amazon, Apple, LinkedIn, EBay. Бурное развитие облачных технологий, в частности IaaS- и PaaS-платформ, открыло новых класс высокодоступных отказоустойчивых инфраструктур почти неограниченных по своей вычислительной возможности. Этот класс решений появился как симбиоз облачных платформ и платформы Hadoop.
На январь 2012 года крупнейшие поставщики IaaS-/PaaS-платформ предоставляют в режиме полной или ограниченной функциональности гибридный решений на основе собственных облачных сервисов и программной платформы Hadoop: в середине 2009 года о поддержке Hadoop и своей IaaS-платформы заявила компания Amazon; с 2011 года Hadoop интегрирован в сервисы Google App Engine; CTP-версии Hadoop на Windows Azure доступна с декабря 2011 года.
В ближайшие годы многие поставщики облачных решений начнут предоставлять новый тип инфраструктуры/платформы как сервиса. Приложениям, спроектированным на основе принципов таких архитектур, будут доступны:
- бесконечный пул ресурсов**, который является одной из характеристик, относящихся к облачным платформам;
- линейную вертикальную масштабируемость, которая является следствием применения парадигмы map/reduce в платформе Hadoop;
- высокий уровень абстракции при разработке на платформе Hadoop приложений для массово-параллельной обработки.
Все вышеперечисленное позволит некоммерческим исследовательским группам и коммерческим стартапам с минимальным временными и финансовыми затратами запускать программные комплексы по решению широкого круга задач оптимизации, прогнозирования, моделирования.
В следующих постах будет подробнее рассмотрена
платформа Hadoop, архитектура компонент платформы -
распределенной файловой системы HDFS и
фреймворка распределенных вычислений MapReduce,
а также сделаны выводы о достоинствах и ограничениях компонент платформы и
перспективах платформы Apache Hadoop в целом.
Список источников
Основные источники
- [3] White, Tom // Hadoop: The Definitive Guide // O'Reilly Media, 2009.
- [6] Hadoop. Apache Software Foundation // http://hadoop.apache.org/
- [15] Finley, Klint // Steve Ballmer on Microsoft's Big Data Future and More in This Week's Business Intelligence Roundup // ReadWriteWeb, 2011.
- [18] Fay Chang, Jeffrey Dean, Sanjay Ghemawat & etc. // Bigtable: A Distributed Storage System for Structured Data // Google Lab, 2006.
- [19] Носов, Е. и др. // Нижегородский государственный университет им. Н.И. Лобачевского.
- [23] Сухорослов, O. // Новые технологии распределенного хранения и обработки больших массивов данных // Институт системного анализа РАН, 2008.
- [24] Jeffrey Dean, Sanjay Ghemawat // MapReduce: Simplified Data Processing on Large Clusters // Google Inc., 2004.
- [30] Judy Qiu // Cloud Technologies and Their Applications // Indiana University Bloomington, 2010
- [33] The Hadoop Distributed File System: Architecture and Design // http://hadoop.apache.org/common/docs/r0.17.2/hdfs_design.html
- [32] Созыкин, А. // Параллельное программирование в Hadoop // http://www.asozykin.ru/courses/hadoop
- [2] Ralf Lammel // Google’s MapReduce Programming Model — Revisited // Microsoft Corp.
Дополнительные источники
- [4] MapReduce. Wikipedia, the free encyclopedia // http://en.wikipedia.org/wiki/MapReduce
- [5] Суханова М. // Облачные перспективы анализа «больших данных» // http://www.iemag.ru/clouds/opinions/detail.php?ID=24440
- [7] Apache Hadoop. Wikipedia, the free encyclopedia // http://en.wikipedia.org/wiki/Apache_Hadoop
- [8] Amazon Elastic MapReduce. Wikipedia, the free encyclopedia // http://en.wikipedia.org/wiki/Amazon_Elastic_MapReduce
- [9] Big data. Wikipedia, the free encyclopedia // http://en.wikipedia.org/wiki/Big_data
- [11] Douglas, L. // 3D Data Management: Controlling Data Volume, Velocity and Variety // Gartner, 2001.
- [12] Christy Pettey, Laurence Goasduff // Gartner Says Solving 'Big Data' Challenge Involves More Than Just Managing Volumes of Data // Gartner, 2011.
- [13] Дубова, Н. // Большая конференция о Больших Данных // Открытые системы, 2011.
- [14] Henschen, Doug // Oracle Releases NoSQL Database, Advances Big Data Plans // InformationWeek, 2011.
- [16] Шах, Агам // HP меняет персональные компьютеры на Большие Данные // Открытые системы, 2011.
- [17] Doug Henschen // EMC Tries To Unify Big Data Analytics // InformationWeek, 2011.
- [20] MapReduce. Wikipedia, the free encyclopedia // http://ru.wikipedia.org/wiki/MapReduce
- [21] Henderson, Craig // MapReduce: A major step backwards // 2009.
- [22] Hadoop // Wikipedia, the free encyclopedia // http://ru.wikipedia.org/wiki/Hadoop
- [25] Amazon Web Services // http://aws.amazon.com/products/
- [26] Amazon S3. Wikipedia, the free encyclopedia // http://en.wikipedia.org/wiki/Amazon_S3
- [27] Amazon S3 // http://aws.amazon.com/s3/
- [28] Dimitrov, Marin // Large Scale Data Analysis with Map/Reduce // 2010.
- [29] Amazon DynamoDB. Wikipedia, the free encyclopedia // http://ru.wikipedia.org/wiki/Amazon_DynamoDB
- [31] Introduction to MapReduce for .NET Developers // http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/
* Стоит отметить, что понятие «большой объем» носит относительный характер, зависящий от решаемой задачи и исторического момента времени решения этой задачи. Применительно к обсуждаемой концепции «большой объем» – это петабайты данных.
** Пул ресурсов ограничен: на уровне учетной записи - индивидуальными ограничениями провайдера облачного сервиса, на уровне провайдера - аппаратными мощностями дата-центра(ов), используемого провайдером для предоставления услуг.