Технология Hadoop, лежащая в основе анализа больших данных, обрела широкую популярность лишь в последние пару лет. Однако первые свои шаги она сделала задолго до этого и в нынешнем году должна отметить свой десятилетний юбилей. Одним из пионеров Hadoop был нынешний главный архитектор компании Cloudera Даг Катинг, который поделился своими воспоминаниями с еженедельником InformationWeek.
Все началось с разработки в 2002 г. опенсорсного поискового Web-робота Nutch, которую Катинг вел совместно с Майком Цафарелла. Программный робот должен был последовательно загружать на диск посещаемые Web-страницы, обрабатывать их и анализировать на предмет связывающих их ссылок. Работала программа довольно медленно. В распоряжении разработчиков было только пять компьютеров, и им приходилось многое делать вручную. Отсутствовали какие-либо средства повышения надежности: при выходе из строя любой машины часть данных безвозвратно терялась.
Толчок к переменам пришел от Google, опубликовавшей в 2004 г. статью, посвященную распределенной обработке больших массивов данных на множестве стандартных серверов с помощью MapReduce. Уже через год скорость обработки существенно выросла, а в проекте Nutch было задействовано 20 серверов. Тем не менее, в плане масштабируемости и надежности все оставалось на прежнем уровне. В начале 2006 г. Катинг перешел в Yahoo, и руководство этой компании решило инвестировать в технологию, которая была отделена от проекта Nutch и получила название Hadoop (по имени игрушечного слона его сына). Уже спустя два года этот проект стал одним из ведущих в Open Source-фонде Apache с довольно многочисленным сообществом разработчиков, а Yahoo анонсировала создание системы, которая впоследствии была признана самой масштабной реализацией Hadoop. В том же 2008 г. была основана фирма Cloudera, первой приступившая к коммерциализации технологии Hadoop.
Рассказывая об идее, лежащей в основе Hadoop, Даг Катинг пояснил, что для решения подобных задач экономически целесообразнее переместить приложение как можно ближе к данным. Дело в том, что по общей производительности локальные северные диски гораздо быстрее тех, что доступны по сети, а потому приложение, обрабатывающее данные, должно работать на каждом отдельном сервере. Проблема лишь в том, как обеспечить совместную слаженную работу множества таких дешевых серверов для анализа всего массива данных.
Сегодня, когда Hadoop получил достаточно широкое распространение, возникли, по мнению Катинга, две категории пользователей. Первая — это те, кто столкнулись с проблемой, которую невозможно решить другими способами. К примеру, эмитент кредитных карт имеет хранилище данных с информацией о транзакциях за последние 90 дней. Hadoop дает возможность обработки информации за последние пять лет. Для компании это очень важно, поскольку ее аналитические инструменты не позволяют выявлять шаблоны потенциального мошенничества на основе короткой предыстории.
Вторая категория — это пользователи, которые более или менее успешно решали свои задачи традиционными методами, но хотели бы попробовать применить для этого совершенно новые инструменты, такие как Hadoop. Например, банк может собрать с помощью Hadoop в одном месте все данные из разных систем, а затем нормализовать их и попробовать применить те или иные методы анализа, скажем, чтобы выявить лучший из них для оценки рисков.
Сегодня тематика Hadoop включена в учебные программы ряда университетов, однако эти программы дают лишь общее представление о технологии и не позволяют готовить сертифицированных специалистов в данной области. Чтобы восполнить этот пробел, Cloudera, как и другие игроки рынка Big Data, ведет обучение по разным каналам. Кроме того, вендоры разъясняют своим клиентам, как можно интегрировать Hadoop с используемыми у них традиционными технологиями и системами. Практическое применение технологии Hadoop, по мнению Катинга, только начинается. Если такие интернет-гиганты, как Google, Facebook, LinkedIn и Yahoo, уже переместили свои основные массивы данных в Hadoop, то многие компании из списка Fortune 500 пока что пробуют использовать данную технологию лишь для решения отдельных частных задач.