С чего начать внедрение Hadoop в компании / Алексей...

Post on 06-Jan-2017

6.741 views 8 download

Transcript of С чего начать внедрение Hadoop в компании / Алексей...

С чего начать внедрение 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 ядерных серверах - хранилище

• маленький проект - невыгодно

• разнос по датацентрам - нет (из коробки)

Книги

Спасибо!

a.eremihin@corp.badoo.comalexxzrus

Как меня найти: @: skype:

Просто советы 2• Используйте форматы с которыми сможете работать и

без Hadoop (java haters)• Восстановите данные из HDFS без java (java haters)• Мониторьте состояние Hadoop• tab separated — отличный формат, но не гибкий• json stream — отличный формат, но не быстрый• сsv — ужасный формат (отсутствие стандарта)• Планируйте рост• Hadoop - не production ready, но вполне стабилен• Решайте задачи, а не внедряйте хадуп• Читайте исходники, они лучше документации

Чего не надо делать

Нельзя кошек сушить в микроволновке

Нельзя не платить налоги

Нельзя облизывать электрические розетки

Нельзя пить воду из унитаза