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.

My talk on HBase ops engineering at TBD Jun 2016

760 views

Published on

My talk on HBase ops engineering at TBD Jun 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

My talk on HBase ops engineering at TBD Jun 2016

  1. 1. Эксплуатация HBase в проекте «Контур.НДС+» Александр Чистяков, ведущий специалист ЗАО “ПФ “СКБ Контур” 21.06.2016 Москва, “Технологии Больших Данных”
  2. 2. Давайте познакомимся ● Меня зовут Саша ● Я работаю в компании “СКБ Контур” ● У меня есть кластер ● Когда-то давно (в прошлом веке) начинал с того, что писал на языках Perl и С
  3. 3. Вы? ● Работаете с большими массивами данных? ● Используете Hadoop-стек? ● Используете HBase? ● Используете PostgreSQL? ● Используете для разработки язык Perl?
  4. 4. Чем мы занимаемся? ● С 2015 года отчетность в ФНС предоставляется в электронном виде
  5. 5. Чем мы занимаемся? ● С 2015 года отчетность в ФНС предоставляется в электронном виде ● На основании анализа электронной отчетности возможны следующие печальные исходы: ● Автоматически выставленные требования
  6. 6. Чем мы занимаемся? ● С 2015 года отчетность в ФНС предоставляется в электронном виде ● На основании анализа электронной отчетности возможны следующие печальные исходы: ● Автоматически выставленные требования ● Камеральная проверка
  7. 7. Чем мы занимаемся? ● С 2015 года отчетность в ФНС предоставляется в электронном виде ● На основании анализа электронной отчетности возможны следующие печальные исходы: ● Автоматически выставленные требования ● Камеральная проверка ● Мы помогаем бизнесу этого избежать
  8. 8. Как это работает? ● Пользователи загружают через веб-интерфейс торговые книги
  9. 9. Как это работает? ● Пользователи загружают через веб-интерфейс торговые книги ● Классические сервисы сверки требуют загрузки торговых книг себя и контрагнента
  10. 10. Как это работает? ● Пользователи загружают через веб-интерфейс торговые книги ● Классические сервисы сверки требуют загрузки торговых книг себя и контрагнента ● Но мы не такие!
  11. 11. Как это работает? ● Пользователи загружают через веб-интерфейс торговые книги ● Классические сервисы сверки требуют загрузки торговых книг себя и контрагнента ● Но мы не такие! ● Мы – единственный в России облачный сервис
  12. 12. Как это работает? ● Пользователи загружают через веб-интерфейс торговые книги ● Классические сервисы сверки требуют загрузки торговых книг себя и контрагнента ● Но мы не такие! ● Мы – единственный в России облачный сервис ● Когда контрагент загрузит свою торговую книгу (если он наш пользователь) – сверка произойдет автоматически
  13. 13. Как это устроено? ● Реляционная СУБД ● Нереляционная СУБД ● Индексатор для FTS ● Веб-интерфейс ● Очередь задач ● Разборщики очереди ● Вспомогательные приложения
  14. 14. Реляционная СУБД ● Естественно, PostgreSQL
  15. 15. Реляционная СУБД ● Естественно, PostgreSQL ● Версия 9.3, планируется миграция на 9.5
  16. 16. Реляционная СУБД ● Естественно, PostgreSQL ● Версия 9.3, планируется миграция на 9.5 ● Master-slave репликация
  17. 17. Реляционная СУБД ● Естественно, PostgreSQL ● Версия 9.3, планируется миграция на 9.5 ● Master-slave репликация ● Размер базы не очень велик, менее 100Gb
  18. 18. Реляционная СУБД ● Естественно, PostgreSQL ● Версия 9.3, планируется миграция на 9.5 ● Master-slave репликация ● Размер базы не очень велик, менее 100Gb ● Хранятся связи между контрагентами и агрегаты
  19. 19. Нереляционная СУБД ● Естественно, HBase
  20. 20. Нереляционная СУБД ● Естественно, HBase ● Сейчас - версия 1.1.5
  21. 21. Нереляционная СУБД ● Естественно, HBase ● Сейчас - версия 1.1.5 ● 11 узлов в кластере
  22. 22. Нереляционная СУБД ● Естественно, HBase ● Сейчас - версия 1.1.5 ● 11 узлов в кластере ● Около 1Tb данных на HDFS
  23. 23. Нереляционная СУБД ● Естественно, HBase ● Сейчас - версия 1.1.5 ● 11 узлов в кластере ● Около 1Tb данных на HDFS ● Примерно миллиард строк в таблицах
  24. 24. Какие были проблемы? ● Резервирование namenode
  25. 25. Какие были проблемы? ● Резервирование namenode ● Primary-secondary – раз в час
  26. 26. Какие были проблемы? ● Резервирование namenode ● Primary-secondary – раз в час ● Общее хранилище – NFS или что-то подобное
  27. 27. Какие были проблемы? ● Резервирование namenode ● Primary-secondary – раз в час ● Общее хранилище – NFS или что-то подобное ● Active-standby – quorum of journalnodes
  28. 28. Какие были проблемы? ● Резервирование namenode ● Primary-secondary – раз в час ● Общее хранилище – NFS или что-то подобное ● Active-standby – quorum of journalnodes ● Automatic switching – active-standby + Zookeeper, ZKFC
  29. 29. Индексатор для FTS ● Естественно, Solr
  30. 30. Индексатор для FTS ● Естественно, Solr ● Шардинг (4 шарда) и репликация (по 1 реплике в шарде)
  31. 31. Индексатор для FTS ● Естественно, Solr ● Шардинг (4 шарда) и репликация (по 1 реплике в шарде) ● Итого, 8 узлов в кластере
  32. 32. Индексатор для FTS ● Естественно, Solr ● Шардинг (4 шарда) и репликация (по 1 реплике в шарде) ● Итого, 8 узлов в кластере ● Выделенные машины
  33. 33. Индексатор для FTS ● Естественно, Solr ● Шардинг (4 шарда) и репликация (по 1 реплике в шарде) ● Итого, 8 узлов в кластере ● Выделенные машины ● Примерно миллиард проиндексированных строк
  34. 34. Какие были проблемы ● Индекс однажды перестал помещаться в память
  35. 35. Какие были проблемы ● Индекс однажды перестал помещаться в память ● 8 и 10Gb RAM для JVM было недостаточно
  36. 36. Какие были проблемы ● Индекс однажды перестал помещаться в память ● 8 и 10Gb RAM для JVM было недостаточно ● G1GC и 24Gb RAM
  37. 37. Веб-интерфейс ● Ничего интересного, HAProxy+nginx+Starman+Perl ● Perl-приложение деплоится через Docker-контейнер ● Раньше разворачивалось в LXC-контейнеры ● В последнюю неделю отчетного периода – 100+ RPS ● В последний день отчетного периода – 150+ RPS
  38. 38. Почему Perl в 2016 году? ● Сложившаяся команда, которая умеет писать на Perl
  39. 39. Очередь задач ● Реализована в виде таблицы в PostgreSQL ● Почему не специализированное приложение? ● Нет смысла поддерживать еще одно приложение ● Текущая реализация работает и справляется с нагрузкой
  40. 40. Разборщики очереди ● Реализованы на Perl ● Непосредственно взаимодействуют с HBase через Thrift ● Запускаются по сron ● Поставляются в виде Docker image
  41. 41. Вспомогательные приложения ● Мониторинг – ранее OpenTSDB и Grafana, теперь – Graphite/Whisper и Grafana ● Сбор логов – ELK-стек ● Алертинг – Мойра
  42. 42. Забавные факты ● В моем предыдущем докладе фигурировал дистрибутив Cloudera ● После замены HBase (1.0) из состава Сloudera на HBase 1.1.2 с конфигурационными файлами по шаблонам проекта “Контур.НДС+”, расчет пошел быстрее на 6 часов (более чем 30% выигрыша)
  43. 43. Спасибо за внимание! ● Пожалуйста, ваши вопросы? ● С вами был ● Александр Чистяков, ведущий специалист, “СКБ Контур” ● http://gitinsky.com ● alex@gitinsky.com ● http://meetup.com/DevOps-40

×