Весь мир — BIG DATA

Практически любой близкий к IT-индустрии человек хоть раз да слышал эти загадочные два слова — «BIG DATA». Что за ними скрывается, где применяются технологии обработки больших объемов данных и с чего можно начать при их изучении, рассказал Евгений Чернов — преподаватель образовательного проекта «Техносфера» и создатель онлайн курсов по Hadoop — системе обработки больших объемов данных.

Евгений Чернов, руководитель отдела анализа запросов Поиск@Mail.ru

Они — повсюду

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

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

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

С ростом компьютеризации BIG DATA проникает повсюду, от банков до супермаркетов, ведь даже небольшое количество пользователей может обеспечивать огромный поток различной информации, которую необходимо будет хранить и анализировать.

За всеми не уследишь

Одна из главных сложностей, которые возникли при столкновении с большими объемами данных — необходимость хранить их распределенно, ведь на одно устройство они могут просто не поместиться. При таком подходе данные сложно даже найти, не то что проанализировать. Для работы с большими объемами данных потребовалось придумать и другие подходы к их структуризации. Например, хранить одну большую базу данных, в которой было бы «все про всех», стало невозможным — такая база занимает слишком много места, а работа с ней крайне неэффективна. Крупные компании столкнулись с необходимостью разработать новое программное обеспечение, позволяющее работать с BIG DATA. Обработку большого количества данных логично было бы поручить большому количеству компьютеров, разбив большие порции данных на маленькие и распараллелив вычисления. Так появились концепции NoSQL (Not only SQL — существенно другие базы данных, решающие проблемы масштабируемости за счет атомарности и согласованности данных) и MapReduce (распределенные вычисления над большими данными объемами в несколько петабайт).

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

Слоненок Hadoop

Так, положив в основу концепции Google, Дуг Каттинг начал разработку системы для работы с большими объемами данных, состоящей из нескольких больших модулей. Этот проект получил название Hadoop в честь игрушечного слоненка ребенка основателя проекта.

Hadoop состоит из нескольких основных модулей: HDFS — специальная файловая системы для работы с большими файлами и YARN — планировщик заданий, отвечающий за управление ресурсами вычислительного кластера, а также модуля MapReduce и модуля для управления внутренними библиотеками Hadoop. Эта система — мощный прикладной инструмент для работы с большими объемами данных, который является одним из наиболее распространенных на сегодняшний день, а реализован он на языке Java.

Данных — много, специалистов — мало

BIG DATA с каждым днем становится все популярнее, количество вакансий по этой специальности на популярных рекрутинговых порталах постоянно увеличивается, а качественное образование в этой сфере получить пока достаточно сложно. Хороших специалистов не хватает, и крупные компании создают специальные образовательные проекты, посвященные BIG DATA и анализу данных, такие как «Техносфера» у Mail.ru и Школа анализа данных (ШАД) у «Яндекса». Это серьезные программы, рассчитанные на несколько лет, куда достаточно непросто поступить и откуда гораздо сложнее выпуститься. Если у вас нет такой возможности или вы пока не уверены, что BIG DATA это то, чем вы хотите заниматься, вы можете пройти курс «Hadoop. Система обработки больших объемов данных» на платформе Stepic.org. Курс основан на программе «Техносферы», его окончили уже больше трехсот человек, которые оставили о нем положительные отзывы, отметив, что этот курс был для них полезен. Конечно, этот курс не позволяет стать экспертом в области BIG DATA, но он поможет понять, о чем идет речь, и получить практические знания по использованию Hadoop, которых зачастую не хватает соискателям при устройстве на работу по этой специальности. Для прохождения курса практически ничего не требуется — необходимо умение программировать хотя бы на каком-то из языков, а также желание упорство пройти этот курс до конца.

Компьютеры сейчас захватывают нашу жизнь, если они ее еще не захватили, и каждый новый пользователь создает все больше новых данных. Единственный способ бороться с «информационным шумом» — уметь хорошо обрабатывать большие данные, чтобы выискивать среди них то, что нужно. За рекомендательными системами, BIG DATA и анализом данных стоит будущее и настоящее не только индустрии IT, но и большинства интернет и медиа проектов. Возможно, в дальнейшем, умение работать с BIG DATA станет обязательным для любого уважающего себя программиста, как сейчас является практически обязательным иметь представление об ООП.