Как в Airbnb справляются с петабайтами при помощи решений с открытым кодом

Big Data / Практика
автор: Кирилл Тихонов  29 ноября 2013

Airbnb — популярный сервис, который помогает туристам найти жильё в чужом городе. И речь не о простых гостиничных номерах. На Airbnb для съёма доступно всё, что можно представить, начиная с раскладушки на ночь и заканчивая частным островом, причём хозяева, как правило, не компании, а обычные люди. За пять лет пользователями Airbnb стали более девяти миллионов человек, причём почти пять миллионов добавились за последний год. Количество данных, с которыми приходится иметь дело стартапу, растёт ещё быстрее.

Иглу, построенные из снега, стоят недёшево.

Жизнь в иглу, построенном из снега, обходится недёшево.

Объём архивных данных, накопленных Airbnb, составляет по меньшей мере два петабайта. Ежедневно компания обрабатывает около 22 терабайтов информации при помощи хранилища, построенного на основе Apache Hadoop и Hive. Информация поступает из множества источников. При таком числе пользователей даже серверные логи растут с пугающей скоростью. Кроме того, используется информация, накопленная внешними аналитическими приложениями, и разнообразные наборы данных, сгенерированные самим сервисом.

Требования к инструментам, которые обрабатывает эти данные, тоже различные. Многие из них предназначены исключительно для внутреннего использования. К этой категории относятся, например, средства, позволяющие изучать особенности поведения посетителей. Это не особенно срочная задача, поэтому такие отчёты можно автоматически генерировать раз в сутки. Встроенный поисковик сайта или рекомендательная система, доступные обычным пользователям, — совсем другое дело. Они должны выдавать ответ «на лету».

Серверное оборудование, необходимое для того, чтобы справляться с огромной нагрузкой, компания арендует в Amazon Web Services. Первоначально в Airbnb применяли также и Amazon Elastic MapReduce, однако теперь программное решение полностью основано на открытом коде и собственных разработках.

В Airbnb можно найти средневековые замки, особняки, баржи и даже домики на деревьях.

В Airbnb можно найти средневековые замки, особняки, баржи и даже домики на деревьях.

Основа софтверной инфраструктуры Airbnb — это кластерный менеджер Apache Mesos, Специалисты компании сравнивают его с операционной системой, предназначенной не для отдельного компьютера, а для целого кластера. Mesos автоматически распределяет доступные серверные ресурсы между различными приложениями, следя, чтобы загрузка машин всегда была максимальной.

Mesos справляется с кластерами, состоящими из десятков тысяч узлов. Такая способность к масштабированию делает его особенно привлекательным для крупных интернет-компаний, обслуживающих миллионы пользователей. Кроме Airbnb, Mesos используют Twitter и видеосервис Vimeo.

В Airbnb предпочитают Mesos по двум причинам. Во-первых, он позволяет обходиться меньшим количеством серверов. Иными словами, это выгодно. Во-вторых, автоматическое управление ресурсами упрощает работу программистов. В результате команды разработчиков могут действовать оперативнее.

Для регулярного запуска процессов, которые время от времени перерабатывают данные, генерируя поисковые индексы, отчёты для бизнес-аналитики, а также обеспечивают работу системы рекомендации цен и детектора мошеннических транзакций, в Airbnb разработали систему под названием Chronos. Как пишет в блоге компании инженер Airbnb Бренден Мэтьюз, проблема, которую решает эта система, куда сложнее, чем кажется.

Chronos фактически представляет собой распределённую и «пуленепробиваемую» версию cron — демона UNIX, автоматически запускающего программы в установленное время. В отличие от cron, Chronos предназначен для использования в кластерах в сочетании с Mesos. Кроме того, он обладает пользовательским интерфейсом, с помощью которого аналитики могут узнать, какие процессы успешно отработали своё, а какие — остановились из-за ошибки.

Интерфейс Chronos

Интерфейс Chronos.

Обработкой данных «на лету» заведует ещё одна система с открытыми исходниками — Storm. Если Hadoop предназначается для исполнения пакетных заданий, то Storm пропускает через себя потоки информации в реальном времени. При этом задачи Storm могут без помех исполняться на тех же узлах кластера, которые задействованы для Hadoop или Chronos. Storm используют не только в Airbnb, но и в Twitter, купонном сервисе Gropon и гигантах китайской электронной коммерции Alibaba.com и Taobao.com.

Одним из примеров использования Storm может служить персонализированная поисковая система Airbnb. Её основа — подбор предложений по принципу географической близости к указанному месту, однако при ранжировании учитывается масса других факторов, связанных с конкретным пользователем, в том числе его настройки, известные социальные связи, история заказов, а также комментарии и оценки, которые он оставлял на сервисе.

В Airbnb ценят информацию и всецело полагаются на её анализ. «Мы хотим применять данные во время принятия каждого решения, — говорит вице-президент по техническим решениям Майк Кёртис. — Мы хотим быть компанией, путь которой задают данные».

Поделиться
Поделиться
Tweet
Google
 
Читайте также
Как хеджфондовый миллиардер организовал Brexit и победу Трампа
Как хеджфондовый миллиардер организовал Brexit и победу Трампа
Кремниевый детектив RAVN ловит коррупционеров. Пока – британских
Кремниевый детектив RAVN ловит коррупционеров. Пока – британских
Сбербанк открывает свои данные
Сбербанк открывает свои данные
  • Роман Лактионов

    в июне полдня потратил на попытки зарегистрироваться в этом Надувном Матрасе, плюнул и привычно забукал через Агоду.

    • jno

      Пришлось регаться на ФБ :)

      • Роман Лактионов

        у меня ФБ есть, но его не хватило. какие-то пляски начались с ЛинкдИном, сканами паспорта, видеосъёмкой. ОК, предоставил, но не проканало.

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

        • jno

          не, до такого маразма у меня лично не дошло.
          какие-то фичи мне, может, и недоступны, но забукать место — можно.

          • Роман Лактионов

            кстати, спасибо статье за напоминание! такую возможность — забукать дешево через Матрас — надо иметь под рукой всегда, обязательно доведу процесс регистрации до конца :)

          • jno

            и андроидное приложение прихватите!

          • Роман Лактионов

            с него и началось… :)

  • Prof

    Пользовался этим сервисом несколько раз, особых претензий нет. Привычно нахожу в нужном месте карты гостиницы и, сузив поиск по цене и звездности, начинаю скрупулезно изучать _отрицательные_ отзывы, иногда присматриваясь к положительным. Вся нужная инфа под рукой, номер можно найти за минуты. Если же ищу частное жилье (а тут у Airbnb конкурентов мало), тогда поиск затягивается, т.к. частное жилье гораздо менее стандартизировано. В целом сервис рекомендую.

    • Роман Лактионов

      сервис выглядит замечательно! потому и хотел им воспользоваться, но не сумел победить систему активации аккаунта, хотя под рукой были и смартфон, и удалёнка.

  • jno

    Раскладушка рулит!
    Такие конфетки попадались в Риме, в Алгарве — сказка!
    Если ехать большой толпой (5..6 рыл), то просто вне конкуренции.
    Ну и технологии годные :)

    • Prof

      Да, чем на больший срок вы едете и чем большей толпой, тем выгодней снимать частное жилье, а не гостиницу. Вот мы вшестером в Лос-Анджелесе, 25-ти минутах от пирса Санта Моника сняли дом на ~150 квадрат,заплатив по $170 в день суммарно. В гостинице это же обошлось в ту же сумму в день, но на человека. Без Airbnb найти такой вариант было бы сложно.
      Однако, к примеру, в Нью-Йорке смысла снимать квартиру нет, т.к. получите малогабаритку по почти такой же цене, что и гостиница.

      • jno

        видать, от целевого региона тоже зависит

Хостинг "ИТ-ГРАД"
© ООО "Компьютерра-Онлайн", 1997-2017
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.
«Партнер Рамблера» Почта защищена сервером "СПАМОРЕЗ" Хостинг "Fornex"