Apache Hadoop («Хадуп») — это набор инструментов для построения системы работы с большими данными. Он предназначен для сбора, хранения и распределённой обработки сотен терабайт информации, которая поступает непрерывным потоком. Именно на его основе строят озёра данных — объёмные хранилища, в которых хранится неструктурированная информация для будущей аналитики.
Hadoop работает по принципу MapReduce, то есть распределения данных. Его суть в том, что система состоит из кластеров — групп отдельных подсерверов, или узлов, которые используются как единый ресурс. Когда на кластер поступает обширная задача, Hadoop делит её на много мелких подзадач и выполняет каждую на своём узле. Это позволяет параллельно решать несколько задач и быстрее выдать конечный результат.
Hadoop — это open-source-продукт, который можно использовать полностью бесплатно и модифицировать для конкретных задач бизнеса. Рассмотрим несколько примеров таких задач:
● Социальной сети нужно хранить переписки пользователей. Это миллионы файлов ежедневно, внутри которых есть текст, эмодзи, видео, картинки, аудио — информация разнородная и неструктурированная. Всю её можно сохранять в хранилище Hadoop, чтобы при необходимости извлекать для аналитики или использования.
● Компании, которая занимается эквайрингом платежей, нужно сохранять информацию о транзакциях. Формат у транзакций один, но в день их 20 миллионов, и они идут с такой скоростью, что просто не успевают записываться в базы данных. Их можно сохранять в хранилище, построенное на базе Hadoop, — это будет достаточно быстро.
● Крупный распределённый сервис доставки еды отправляет миллионы заказов в день по всей стране. Информация о заказах хранится в базе данных, и она критически важна для нормальной работы приложения. Эти же данные нужно анализировать для улучшения работы приложения, поэтому можно сохранять их в хранилище Hadoop и использовать для аналитики, минуя базу и не подвергая риску само приложение.
Аналитики данных редко работают с хранилищем Hadoop напрямую — это требует глубоких познаний в архитектуре и алгоритмах работы системы, которыми больше владеют Data-инженеры. Как правило, аналитики обращаются к надстройкам над Hadoop, например таблицам Hive, и извлекают данные уже оттуда. А потом анализируют их с помощью специальных инструментов — этому можно обучиться на курсе «Аналитик данных».
Со временем объём данных начал расти, и требования к скорости обработки тоже. В 2005 году появилась новая концепция — MapReduce. Дуг Каттинг и Майк Кафарелла, разработчики ПО, решили создать на базе этой концепции программную инфраструктуру для распределённых вычислений. Проект назвали в честь игрушечного слонёнка ребёнка одного из основателей, так и получился логотип.
Постепенно Hadoop развивался, обрастал новыми технологиями и модулями, становился всё более надёжным и производительным. Сформировалась целая экосистема Hadoop с инструментами для облегчения управления данными.
Пока что Hadoop используют во многих компаниях для строительства хранилищ и озёр данных, хотя он постепенно начинает уходить в прошлое. Ему на замену приходят новые технологии, связанные с локальными дата-центрами и обработкой больших данных в облаке.
Внутри проекта Hadoop — четыре основных модуля:
1. Hadoop Common.
Набор инструментов, которые используются для создания инфраструктуры и работы с файлами. По сути, это управляющая система для остальных модулей и связи с дополнительными инструментами.
2. HDFS (Hadoop Distributed File System).
Распределённая файловая система для хранения данных на различных узлах. В неё встроена система дублирования данных, чтобы обеспечить их надёжность и сохранность даже при отказе отдельных серверов. Здесь хранятся неструктурированные данные, извлекать которые нужно не просто запросами, а специальными средствами и инструментами.
3. YARN (Yet Another Resource Negotiator).
Система управления кластером Hadoop, которая позволяет приложениям использовать вычислительные мощности.
4. Hadoop MapReduce.
Платформа, которая отвечает за MapReduce-вычисления, то есть распределяет входные данные по узлам.
Также в системе Hadoop есть многочисленные дополнительные компоненты, например:
● Hive.
Хранилище, которое позволяет запрашивать из HDFS большие наборы данных и создавать сложные задания MapReduce. Использует язык запросов HQL, который напоминает SQL. Именно с этим хранилищем, как правило, работают аналитики данных.
● Pig.
Инструмент для преобразования данных, который умеет подготавливать данные различных форматов для будущего использования.
● Flume.
Инструмент для приёма больших данных и отправки их в HDFS. Умеет собирать большие потоковые данные, например, из логов.
● Zookeeper.
Координатор, который помогает эффективнее распределять информацию по разным узлам.
Hadoop нужен, чтобы:
● Повысить скорость обработки данных благодаря модели MapReduce и параллельным вычислениям.
● Обеспечить устойчивость данных за счёт хранения резервных копий на других узлах.
● Работать с данными любых типов и видов, в том числе неструктурированными, например видео.
Благодаря этим возможностям Hadoop используют в следующих практических задачах:
● Создание озера данных — недорогого и удобного хранилища для неструктурированной информации.
● Обработка данных из соцсетей — они часто не структурированы, поступают в больших объёмах, но позволяют получить как можно больше информации о клиентах.
● Анализ поведения клиентов, сбор информации об их действиях на сайте и в магазине, который нужен, чтобы делать на основе этого прогнозы.
● Управление рисками, анализ логов, реагирование на поломки и нарушения безопасности. Логи, как правило, идут большим потоком, и другие хранилища с ними не справляются.
● Обработка данных от интернета вещей — датчиков, размещённых на различных устройствах.
Hadoop применяют для хранения и анализа больших данных. Он нужен тем компаниям, которые работают с Big Data: крупному ретейлу, социальным сетям, производству, логистике, здравоохранению, высокотехнологичным стартапам.
Примеры использования Hadoop в разных сферах бизнеса:
Ретейл. Сбор данных о продажах и поведении покупателей на сайте. Сбор и хранение информации о товарах: ассортименте, популярности, остатках на складе. Формирование на основе этих данных программ лояльности, персональных предложений и акций, схемы закупок. Повышение продаж.
Производство. Хранение информации от датчиков на оборудовании. Прогнозирование интервалов техобслуживания, формирование цен на продукцию, уменьшение затрат на производство.
Банки. Анализ финансовой информации и рисков. Выявление мошенничества. Предсказание поведения клиентов.
Больницы. Хранение медицинских данных, которые практически всегда неструктурированные. Повышение прибыльности, оценка эффективности лечения, выявления факторов риска заболеваний.
Кроме Hadoop, для этого нужны другие инструменты для анализа больших данных, построения графиков и обучения нейросетей и умеющие с ними работать квалифицированные специалисты — аналитики данных и специалисты по Data Science.
Совет эксперта
Александр Толмачёв
Тем, кто работает аналитиком данных или только планирует им стать, на старте Hadoop не пригодится. Хранилища на его основе есть далеко не во всех компаниях — а там, где есть, ими обычно занимаются другие специалисты, например Data-инженеры. Со временем изучить эту технологию будет полезно — так специалист получит гораздо больший вес в глазах нанимателей и сможет продвинуться выше по карьерной лестнице.
* сервис предоставляется организацией, признанной экстремистской на территории РФ
Читать также: