Hadoop - как Facebook работает с данными?
Все мы слышали о Facebook.com и все можем только представляеть себе те объемы данных, с которыми вынуждены работать бекенды этой системы.
При их объемах они упираются в ограничения стандартных решений - будь то цена либо производительность. Как же они решают задачу управления данными и их хранения?
Для начала некоторые цифры:
- 400 ТБ данных находятся под управлением Hadoop. Уровень сжатия данных - 6:1, т.о. фактический объем данных 2.5 ПетаБайт
- 15 ТБ новых данных ежедневно
В 2007 году Facebook (имея тогда сумарный размер данных в 15 ТБ) переехал на открытое решение: Hadoop
Hadoop
Hadoop - это платформа и среда от Apache для разработки и исполнения приложений, работающих с огромными объемами данных. Подробнее читайте на официальном сайте.
Facebook, в дополнение к платформе, использует еще одну разработку - Hive. Это их собственное дополнение к Hadoop для манипулирвоания данными.
Специфика и показатели на Facebook.com:
- Hadoop кластер состоит из 610 узлов (вскоре будет 1000)
- Тысячи одновременных запросов
- Различная аналитика выполняется в Hadoop
- Запросы рекламного таргетинга выполняются каждый час
- Операции дата-майнинга выполняются в Hadoop
- Социальный анализ выполняется в Hadoop
Почему Facebook выбрал Hadoop?
- Цена, которую не нужно платить. Данное решение бесплатно
- Управление ресурсами. Система Hadoop специально расчитатана на работу с большим количеством данных и масштабирование. На основне этой системы проще построить кластер, который будет обрабатывать 1000 одновременных запросов, чем на основе других СУБД
- Гибкость в структуре данных. В Hadoop проще поддерживать часто меняющиеся структуры данных, чем в РСУБД
- Возможность быстрого и дешевого горизонтального масштабирования
- Возможность работы на дешевом железе
Hive
Facebook нуждается в достаточно сложных операциях с данными. Хотя Hadoop и предоставляетс обширный функционал, тем не менее ребята из лидирующей соц. сети разработали дополнение, которое облегчает работу с данными. Это решение является открытым (т.е. доступно всем), хотя еще немного сырым. Главной идеей Hive является создание прослойки по обработке SQL синтаксиса, компилированию его и преобразованию в родные инструкции Hadoop (MapReduce конфигурации).
http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/


Т.е. hadoop это замена релационной БД, но я читал что у фейсбука большая ферма mysql серверов, или hadoop как то внутри себя использует эти сервера?
Hadoop не заменяет функциональности MySQL, это платформа, и написать на ней РСУБД крайне тяжело. Именно поэтому facebook использует MySQL для задач одного рода и Hadoop для задач другого рода. Суть в том, что Hadoop адаптирована под работу с огромными объемами данных на уровне платформы.