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