Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Олег Савкин (Twitter), Twitter: архитектура, данные, CodeFest 2017

CodeFest
January 25, 2018

Олег Савкин (Twitter), Twitter: архитектура, данные, CodeFest 2017

https://2017.codefest.ru/lecture/1147

● статистика Twitter: некоторые любопытные числа (сколько пользователей в день, твитов, объемы данных, и т.д.)
● архитектура Twitter: до и после 2010
● Data @ Twitter — что используется:
— базы данных
— Hadoop
— языки программирования
— прочее
● пример dataflow in Twitter (logging user events, life of a client event, data flows for sentiment scoring)

CodeFest

January 25, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. Кто такой Sr. Database developer - Не совсем sysadmin -

    Не совсем DBA - Много лет работы с различными базами данных - Опыт участия в Enterprise проектах - Проектирование баз данных – логическое и физическое - Использование различных языков программирования - Общение с заказчиками и проектирование проекта - И т.п.
  2. • 3,860 работников • 2,000 в San Francisco • 40%

    технические специалисты. • 313 миллионов активных пользователей в месяц • 100+ миллионов твитов в день • 40 языков (японский, китайский, фарси, арабский, и прочие..) • 200+ миллионов бродкастов в Перископе на март 2016
  3. Twitter Clients clients routing logic storage Manhattan (Distributed DB) Gizmoduck

    (User Service) Web API Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Tweets API Search Service Direct Messages Service Users API Search API Messages API Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) TFE (Twitter Front End) HTTPS TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients Manhattan (Distributed DB) API Timeline API
  4. Twitter Front End (TFE) clients routing logic storage Manhattan (Distributed

    DB) Gizmoduck (User Service) TFE (Twitter Front End) Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Search Service Direct Messages Service Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTPS HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients Manhattan (Distributed DB) API Web API Tweets API Users API Search API Messages API Timeline API
  5. Presentation Layer Services clients routing logic storage Manhattan (Distributed DB)

    Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service TBird (Tweet Store) Search Service Direct Messages Service Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients HTTPS Web API Tweets API Users API Search API Messages API TFE (Twitter Front End) Thrift Manhattan (Distributed DB) API Timeline API
  6. Application Logic Services clients routing logic storage Manhattan (Distributed DB)

    TBird (Tweet Store) Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) HTTP TweetDeck Twitter for iOS Twitter for Android twitter.com Twitter API Clients HTTPS TFE (Twitter Front End) Thrift Web API Tweets API Users API Search API Messages API Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service Search Service Direct Messages Service Manhattan (Distributed DB) API Timeline API
  7. Storage Services clients routing logic storage HTTP TweetDeck Twitter for

    iOS Twitter for Android twitter.com Twitter API Clients HTTPS TFE (Twitter Front End) Thrift Gizmoduck (User Service) Tweetypie (Tweet Service) Timeline Service Social Graph Service Search Service Direct Messages Service Manhattan (Distributed DB) Tbird (Tweet Store) Flock (Graph Store) TFlock (Tweet Graph Store) DMBird (Direct Msg Store) Manhattan (Distributed DB) API Web API Tweets API Users API Search API Messages API Timeline API
  8. Analytics example: Logging User Events clients routing logic storage Scribe

    Aggregator Web API TFE (Twitter Front End) Tweetypie (Tweet Service) TBird (Tweet Store) Rufous Twitter for Android Hadoop (HDFS) … … … … twitter.com API Клиенты Твиттера регистрируют множество различных клиентских событий, таких как показы и клики
  9. Что Твиттер хранит в MySQL: • Твиты • Пользователей •

    Социальные графы • Данные о доходах • Данные внутренних сервисов
  10. Hadoop@Twitter в цифрах 600+ Hadoop worker nodes 40 Thousand Petabytes

    Storage available (Ignoring replication) В Твиттере одни из самых больших кластеров в мире. Например, один из самых «горячих» и используемых кластеров имеет 10 тысяч нод
  11. Как используется Hadoop в Твиттере: • Обработка большого объема данных

    • Сохранение событий • Поиск • Эксперементирование • Показы рекламы • Анализ и обработка данных • Backup и хранение данных • И т.д..
  12. Testing Development / testing of new jobs and data sets

    Bleeding edge release, no sla, business hours Ad-hoc One off / ad-hoc queries and analysis Next stable release, restarted regularly, business hours Processing Regularly scheduled production jobs with dedicated capacity Stable release, 24x7 support Cold (backups) Dense storage clusters, not for compute Stable release, 24x7 support Real-time Critical performance production jobs with dedicated capacity Stable release, 24x7 support Hadoop@Twitter: Типы кластеров
  13. Hadoop@Twitter – обзор pipelines • Сбор логов событий с компьютеров

    Twitter Front End во всех датацентрах • Агрегирование логов по времени и категориям во всех датацентрах • Распределение логов по различным кластерам в определенные директории • Многоуровневые SLA для различных категорий задач • Логи сохраняются в HDFS в почасовых partitions в стандартной HDFS структуре • Схемы файлов хранимых в HDFS определены в Thrift