51
Слон желтого цвета и его друзья Alex Chistyakov

Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

  • Upload
    ontico

  • View
    719

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Слон желтого цвета и его друзьяAlex Chistyakov

Page 2: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Будем знакомы• Меня зовут Саша

• Я работаю в Федеральном Казенном Учреждении «Налог-Сервис» на должности главного специалиста

• В мои должностные обязанности входит эксплуатация Hadoop-кластера ФНС

Page 3: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Вы?• Готов поспорить, немного программируете?

• Судя по названию конференции — разрабатываете высоконагруженные(?) системы

• Пишете на PHP?

• Имеете опыт работы с MySQL?

• Используете MongoDB?

• ^ Ничего из этих трех пунктов мы в ФКУ «Налог-Сервис» не делаем :)

Page 4: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

КДПВ• Ужасного качества фото * (снимал на утюг)

Page 5: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Немного истории• Попасть в большой проект очень просто — надо

сидеть дома и ждать, вам позвонят

• Когда я переступил порог московского филиала, постановка задачи звучала как «всё плохо, необходимо привести всё в порядок»

• Все было не так уж и плохо

Page 6: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Что было (факты)• Полстойки BigData-решения от компании Cisco

Page 7: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Что было (факты)• Полстойки BigData-решения от компании Cisco

• RHEL 6

Page 8: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Что было (факты)• Полстойки BigData-решения от компании Cisco

• RHEL 6

• Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2

Page 9: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Что было (факты)• Полстойки BigData-решения от компании Cisco

• RHEL 6

• Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2

• Разработчики в продакшн-системе, меняющие настройки кластера через веб-интерфейс

Page 10: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Что было (факты)• Полстойки BigData-решения от компании Cisco

• RHEL 6

• Установленный «дистрибутив» Hadoop от компании Cloudera версии 5.2

• Разработчики в продакшн-системе, меняющие настройки кластера через веб-интерфейс

• Приложение на Java и приложение на Scala, решающие разные задачи с использованием разных сервисов (YARN/HBase и Spark/Parquet, соответственно)

Page 11: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Бизнес-задачи• Поиск ошибочных данных в налоговых

декларациях путем сравнения деклараций контрагентов

Page 12: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Бизнес-задачи• Поиск ошибочных данных в налоговых

декларациях путем сравнения деклараций контрагентов

• ^ Делается в отсутствие интерактивных пользователей

Page 13: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Бизнес-задачи• Поиск ошибочных данных в налоговых

декларациях путем сравнения деклараций контрагентов

• ^ Делается в отсутствие интерактивных пользователей

• Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС)

Page 14: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Бизнес-задачи• Поиск ошибочных данных в налоговых

декларациях путем сравнения деклараций контрагентов

• ^ Делается в отсутствие интерактивных пользователей

• Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС)

• Обработка интерактивных запросов от налоговых инспекторов

Page 15: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Бизнес-задачи• Поиск ошибочных данных в налоговых

декларациях путем сравнения деклараций контрагентов

• ^ Делается в отсутствие интерактивных пользователей

• Визуализация найденных несоответствий (помогает налоговым инспекторам формировать требования по НДС)

• Обработка интерактивных запросов от налоговых инспекторов

• ^ Делается в рабочее время

Page 16: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

D — DevOps• Culture

• Automation

• Measurement

• Sharing

Page 17: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

C — Culture• В петербургском филиале ФКУ «Налог-Сервис»

принято обращаться друг к другу по имени-отчеству

Page 18: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

A — Ansible• Как будто есть что-то еще!

Page 19: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Б — Безопасность• Внутренняя сеть не имеет подключения к

интернету

• Ничего нельзя внести и вынести

• Зато можно спать в спальнике на полу в петербургском филиале, пока кластер считает

Page 20: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Первые шаги• Не очень старый, но добрый Ansible

• Первый проект, в котором я при помощи Ansible делал ad hoc команды

• ansible all -a "command" --sudo --user ansible

Page 21: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Первые шаги• Не очень старый, но добрый Ansible

• Первый проект, в котором я при помощи Ansible делал ad hoc команды

• ansible all -a "command" --sudo --user ansible

• Описание конфигурации в виде playbooks/roles

• Прямое переиспользование ролей из других проектов почти невозможно — Cloudera очень специальная вещь

Page 22: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Cloudera — …• Управление через web-interface

• Параметры хранятся в базе PostgreSQL

• Где-то есть шаблоны, на основании которых генерируются конфигурационные файлы сервисов

Page 23: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Cloudera — …• Управление через web-interface

• Параметры хранятся в базе PostgreSQL

• Где-то есть шаблоны, на основании которых генерируются конфигурационные файлы сервисов

• Сервисами заведует supervisord

• Конфигурационные файлы генерируются заново для каждого запуска в каталоге с уникальным монотонно возрастающим номером O_O

Page 24: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Cloudera — …• Web-интерфейс «знает» далеко не про все

возможные параметры

• Значения вида -Xmx2048m не поддерживаются, Cloudera manager разбирает ТОЛЬКО значения в байтах

• Как быть, если нужно задать значение более 4-х гигабайт (в Int не помещается)? :)

Page 25: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Cloudera — …• Web-интерфейс «знает» далеко не про все

возможные параметры

• Значения вида -Xmx2048m не поддерживаются, Cloudera manager разбирает ТОЛЬКО значения в байтах

• Как быть, если нужно задать значение более 4-х гигабайт (в Int не помещается)? :)

• ^ Отдельный вопрос: зачем выделять контейнеру более 4-х гигабайт? O_o

Page 26: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Cloudera — …• Зафиксировали конфигурацию при помощи

Ansible

• Оторвали web interface

• Получили набор странных проблем при рестарте узла (конфигурация удаляется)

• Удивились, перенесли конфигурацию в другой каталог

Page 27: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

M — Measurement• Church of Metrics

• В первую же неделю работы мы внесли в закрытый контур LXC-контейнер с Grafana и Graphite/Whisper

• Church of Metrics получила несколько новых адептов :)

Page 28: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

H — Highload :)• 100% утилизация системного HDD на машине с

Grafana/Graphite/Whisper

• Жалобы разработчиков (они просто ничего не понимают в мониторинге)

Page 29: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

H — Highload :)• 100% утилизация системного HDD на машине с

Grafana/Graphite/Whisper

• Жалобы разработчиков (они просто ничего не понимают в мониторинге)

• Доказательства того, что узел и правда не справляется (в логах видно, что не успевают писаться логи)

Page 30: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

O — OpenTSDB• У нас уже есть HDFS и HBase

• Храним метрики в HBase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 31: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

С — CPU (7 days)• У нас уже есть HDFS и HBase

• Храним метрики в Hbase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 32: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

C — CPU (12 hours)• У нас уже есть HDFS и HBase

• Храним метрики в Hbase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 33: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Ж — Жадность• У нас уже есть HDFS и HBase

• Храним метрики в Hbase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 34: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Б — Баланс• У нас уже есть HDFS и HBase

• Храним метрики в Hbase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 35: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

О — Отказ• У нас уже есть HDFS и HBase

• Храним метрики в Hbase

• Интерфейс рисования графиков в Grafana для OpenTSDB — это боль

Page 36: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

О — Отказ• supervisord в Cloudera так настроен, что после

трех попыток выключает сервис

• Однажды у нас выключились 11 region servers в HBase

• Кластер работал БЕЗ ПОТЕРИ ПРОИЗВОДИТЕЛЬНОСТИ

Page 37: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

О — Отказ• supervisord в Cloudera так настроен, что после

трех попыток выключает сервис

• Однажды у нас выключились 11 region servers в HBase

• Кластер работал БЕЗ ПОТЕРИ ПРОИЗВОДИТЕЛЬНОСТИ

• ^ WTF???!!!

Page 38: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Л — Локальность• Свойство region server читать данные прямо с

data node

Page 39: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Л — Локальность• Была 0 на всех region servers

• На HDFS data nodes — FQDN

• На HBase region servers — короткие символьные имена

• Несовпадение имен — RS не считают, что данные локальны

Page 40: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Л — Локальность• Была 0 на всех region servers

• На HDFS data nodes — FQDN

• На HBase region servers — короткие символьные имена

• Несовпадение имен — RS не считают, что данные локальны

• Рестарт data nodes — теперь используются короткие имена

• Major compaction всех таблиц

Page 41: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Л — Локальность• Была 0 на всех region servers

• На HDFS data nodes — FQDN

• На HBase region servers — короткие символьные имена

• Несовпадение имен — RS не считают, что данные локальны

• Рестарт data nodes — теперь используются короткие имена

• Major compaction всех таблиц

• И НУЛЕВОЙ ПРИРОСТ ПРОИЗВОДИТЕЛЬНОСТИ! :)

Page 42: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

S — Sampling• kill -QUIT pid

• Скрипт на bash :)

• Анализ сэмплов вручную

• Слишком частые обращения к HBase metadata

• ^ быстро исправили

Page 43: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

S — Sampling• kill -QUIT pid

• Скрипт на bash :)

• Анализ сэмплов вручную

• Слишком частые обращения к HBase metadata

• ^ быстро исправили

• Low hanging fruits кончились, далее проблемы внутри алгоритма — в сэмплах видим счет

Page 44: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

Момент истины• Неважно, сколько у вас в кластере узлов

• Важно, насколько хорошо параллелится ваш алгоритм

• Не должно быть большого разброса во временах исполнения однотипных подзадач в контейнерах

Page 45: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

D — Docker • Ничего не понятно!

• ^ Необходимость создания изолированной среды

Page 46: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

D — Docker • Ничего не понятно!

• ^ Необходимость создания изолированной среды

• «Тонкие контейнеры»

• ^ Не работают, YARN теряется в случае, когда сеть сделана пробросом портов

Page 47: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

D — Docker • Ничего не понятно!

• ^ Необходимость создания изолированной среды

• «Тонкие контейнеры»

• ^ Не работают, YARN теряется в случае, когда сеть сделана пробросом портов

• OpenVSwitch

• ^ Бывает, зависает в момент добавления новых сетевых карт в бридж

Page 48: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

D — Docker • 2 тестовых машины

• Примерно по 10 контейнеров на каждой

• «Работает — не трогай»

• OpenVSwitch, процедура проверки работоспособности сети и рестарта

• Понимание того, что с Docker нам не по пути :)

Page 49: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

S — Sharing• Одна пятидневная и две трехдневные

тренировочные сессии для коллег из московского и петербургского филиалов

• Процесс развертывания всего стека с комментариями, запись видео

• Преподавать — это круто! :)

• Ни за три дня, ни за пять дней материал усвоить невозможно :(

• В планах — дистанционное обучение

Page 50: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

В — Выводы• В федеральных проектах тоже есть жизнь

• Она точно такая же, как и в любой большой коммерческой компании

• Стек технологий Hadoop неплохо подходит для анализа больших объемов данных

• Знание, по-прежнему, сила!

Page 51: Слон желтого цвета и его друзья (эксплуатация Hadoop-стека в федеральном проекте) / Чистяков Александр

С — Спасибо!• С вами был Александр Чистяков

• http://service-nalog.ru

[email protected]

• http://meetup.com/DevOps-40

• Пожалуйста, ваши вопросы!