Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)

8,488 views

Published on

+ Обзор внутреннего устройства Hadoop и продуктов вокруг;
+ Как можно использовать для решения (спектр);
+ Как подходить к обоснованности использования даже в небольших проектах;
+ Hadoop в Badoo - история успеха;
+ Hadoop в Badoo - история проблем.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)

  1. 1. С чего начать внедрение Hadoop Алексей Еремихин,
  2. 2. О чём доклад ● задачи ● что такое Hadoop ● что внутри ● что вокруг ● опыт Badoo
  3. 3. Какие задачи решаем ● Хранение архивов данных ● Чтение архивов данных ● Сбор статистики ● Подготовка данных для выгрузки
  4. 4. Хранение архивов • Архив — не бекап • Храним информацию в файлах • Масштабирование • Репликация • Обработка отказов
  5. 5. Чтение архивов • Разархивация • Распараллеливание • SQL доступ • Адаптация форматов к SQL
  6. 6. Сбор статистики • Число событий • Число уникальных событий • Разбить по параметрам • SQL
  7. 7. Подготовка данных • Построение ROLAP/MOLAP моделей • ETL (transform, load) • Расчет долгих сложных вещей (рекомендации)
  8. 8. Hadoop
  9. 9. Hadoop внутри • HDFS - файловая система • YARN/MapReduce - обработка данных
  10. 10. HDFS
  11. 11. Командная строка Linux: ls, du, mv, cp, rm, cat, mkdir, test, touchz, tail, chmod, chown, chgrp специфичные: copyFromLocal, copyToLocal, setrep, text
  12. 12. YARN / MapReduce • Hadoop 2.x YARN + MapReduce • Hadoop 1.x MapReduce • многозадачность невытесняющая
  13. 13. Hive • SQL вместо MapReduce • SQL для доступа к текстовым архивам • SQL для статистики • SQL для подготовки данных
  14. 14. Hive
  15. 15. Вокруг Hadoop
  16. 16. Экосистема https://hadoopecosystemtable.github.io • 150 продуктов вокруг Hadoop • 7 файловых систем • 18 распределенное программирование • 15 NoSQL • 11 SQL • 9 newSQL • 11 сбор данных • 6 машинное обучение
  17. 17. Hadoop в Badoo Наше железо: Кластер: 15 серверов (16 CPU, 192Gb RAM, 10 disks 1Tb) 2 сервера подготовки данных (12 CPU, 32Gb RAM)
  18. 18. Хранение данных • 10 миллардов событий в день • 600 Gb сжатых данных в день • Файлов 1 400 000 — 50Tb • Блоков 1 500 000 • Средний фактор репликации 2.75 • Все данные сжаты gzip/bzip/Snappy
  19. 19. Обработка данных • Агрегация и фильтрация - Hive • Расчет значений для TimeSeries - Spark • Streaming — когда не Spark и не Hive • Форматы: json, tab separated
  20. 20. Просто советы • сжимайте данные (gzip / bzip2 / lzo) • нарезайте на файлы • размер файла ~ несколько блоков • нарезайте директории по дням / часам • не храните данных в пути файла • бекапьте неймноду • неймноду бекапьте
  21. 21. Чего не надо делать • все на 1 сервере – только девел • меньше 1 Гб памяти - много не сделать • на 1 ядерных серверах - хранилище • маленький проект - невыгодно • разнос по датацентрам - нет (из коробки)
  22. 22. Книги
  23. 23. Спасибо! a.eremihin@corp.badoo.com alexxzrus Как меня найти: @: skype:
  24. 24. Просто советы 2 • Используйте форматы с которыми сможете работать и без Hadoop (java haters) • Восстановите данные из HDFS без java (java haters) • Мониторьте состояние Hadoop • tab separated — отличный формат, но не гибкий • json stream — отличный формат, но не быстрый • сsv — ужасный формат (отсутствие стандарта) • Планируйте рост • Hadoop - не production ready, но вполне стабилен • Решайте задачи, а не внедряйте хадуп • Читайте исходники, они лучше документации
  25. 25. Чего не надо делать Нельзя кошек сушить в микроволновке Нельзя не платить налоги Нельзя облизывать электрические розетки Нельзя пить воду из унитаза

×