Опыт разработки масштабируемого решения по хранению...
DESCRIPTION
Выступление Дмитрия Морозова, нашего ведущего специалиста по проектированию IT-инфраструктурных решений, на техническом семинаре «Hadoop на практике. Новые инструменты и проекты» (12 ноября 2014, Москва).TRANSCRIPT
![Page 1: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/1.jpg)
12 ноября 2014 года
Опыт разработки
масштабируемого решения
по хранению журналов в Hadoop
Дмитрий Морозов
Ведущий специалист
по проектированию IT-инфраструктурных решений
![Page 2: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/2.jpg)
Исходная проблематика
и постановка задачи
2/19
![Page 3: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/3.jpg)
Специфика компаний, с которыми
работаем
Торговые сети
Банки
Разнообразный парк
автоматизированных учетных систем
Нагруженные базы данных,
большая часть из которых – Oracle
3/19
![Page 4: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/4.jpg)
Трудности компаний, обладающих
зоопарком учетных систем
Дорогое хранение практически
неиспользуемых данных журналов
Сложное администрирование
оперативных баз данных, недостаточное
окно времени для резервного копирования
Невозможность использовать
информацию журналов для анализа
4/19
![Page 5: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/5.jpg)
Цели решения (интересы клиентов)
Уменьшить стоимость хранения данных
журналов, обеспечив доступ
к ним из существующих приложений
Сохранить привычный способ работы
с приложениями для пользователей
Упростить задачи администрирования БД
Создать возможность использования
журналов при анализе больших данных
5/19
![Page 6: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/6.jpg)
Модель жизненного цикла данных
Оперативный контур
Отчетный контур
Аналитический контур
Архивный контур
Удаление
Создание
6/19
![Page 7: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/7.jpg)
Начальное положение дел
Все данные
7/19
![Page 8: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/8.jpg)
Журналы как отдельная категория
Существенный вклад в объем данных Большой поток данных Только для чтения
Отдельное хранение Масштабируемость Оптимизация на чтение/поиск/аналитику
8/19
![Page 9: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/9.jpg)
Предлагаемое разделение
Оперативный и отчетный контур
Аналитический и архивный контур
9/19
![Page 10: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/10.jpg)
Почему Hadoop?
Варианты размещения журналов:
Партиционирование в рамках того же экземпляра БД
В отдельном экземпляре БД
В распределенном хранилище (например, ElasticSearch)
В хранилище Hadoop
Преимущества выбора Hadoop:
Стоимость хранения
Масштабируемость и отказоустойчивость
Богатые возможности ad hoc анализа данных
инструментами Hadoop
10/19
![Page 11: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/11.jpg)
Архитектура масштабируемого
решения по хранению журналов
11/19
![Page 12: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/12.jpg)
Общая схема решения: было
АС
Генерация данных журналов
Сохранение данных журналов
Файлы на
локальных дисках
Журналыв БД
Интерфейсы доступа к журналам
Первичная запись
Чтение
Запрос данных
Запись данных12/19
![Page 13: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/13.jpg)
Общая схема решения: стало
АС
Генерация данных журналов
Сохранение данных журналов
Файлы на
локальных дисках
Журналыв БД
Интерфейсы доступа к журналам
Первичная запись
Хранилищежурналов Архивирование
Чтение
Запрос данных
Запись данных13/19
![Page 14: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/14.jpg)
Размещение данных
Даты событий
Журналы в исходной БД(фиксированный объем)
Журналы в хранилище
Перенос данных
Удаление данных
Создание новых
данных
Оперативный и отчетный контурАналитический и архивный контур
14/19
![Page 15: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/15.jpg)
Архитектура хранилища
Распределенная файловая система (HDFS)
Сервис запуска задач(Oozie)
Сервис переноса текстовых журналов
(Flume)
Сервис переноса реляционных
журналов (Sqoop)
Сервис конфигурирования
кластера(ZooKeeper)
Сервис администрирования
кластера(ClouderaManager)
Сервис очистки журналов
FullScan-БД (Impala) KeyValue-БД (HBase)
Интерфейс запроса данных(REST API)
Интерфейс импорта файловых
журналов
Интерфейс импорта журналов
РСУБД
Сервис индексации
(Solr)
Сервис доступа к журналам хранилища
Запрос данных
Запись данных
Разработка CUSTIS
Компоненты экосистемы Hadoop
15/19
![Page 16: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/16.jpg)
Подключение АС к хранилищу
16/19
Сервер приложений (Java/Jboss)
БД(Oracle)
Журнал сервера приложений
Запрос журнальных данных
Интеграционный адаптер
БД + Сервер приложений
(Oracle)
Интеграционный журнал
Запросжурнальных данных
Запрос «свежих» журналов
Интеграционныйжурнал
Интеграционный адаптер
Запрос «свежих» журналов
Журнал приложенияЖурнал
приложения
Интерфейс запроса данных
(REST API)
Интерфейс импорта файловых журналов
Интерфейс импорта журналовРСУБД
Запрос данных
Запись данных
![Page 17: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/17.jpg)
Стоимость хранения данных (10 Тб)
На СХД среднего уровня
Полка СХД + коммутаторы ~ 3 млн руб.
SATA ~ 50 Тб, т. е. 600 тыс. руб. за 10 Тб
SAS ~ 15 Тб, т. е. 2 млн руб. за 10 Тб
SSD, FlashCache и т. п. даже не рассматриваем
На HDFS
По 10 Тб обычных дисков на 4 дешевых сервера
~ 50 х 4 = 200 тыс. руб.
Оборудование и для хранения, и для вычислений
Разница – минимум в 3 раза, для SAS – в 10
17/19
![Page 18: Опыт разработки масштабируемого решения по хранению журналов в Hadoop](https://reader034.vdocuments.mx/reader034/viewer/2022042700/5591a11d1a28ab9a268b46a2/html5/thumbnails/18.jpg)
Результаты решения
Значительно сокращается стоимость хранения
данных журналов (минимум в 3 раза)
За счет уменьшения объемов оперативных БД
упрощаются задачи администрирования,
уменьшается время создания резервных копий
Для пользователей ничего не изменилось,
существовавшие интерфейс и функционал АС
сохранены
Информацию, которая раньше считалась
обузой, можно использовать при анализе
больших данных
18/19