WWW.MASH.DOBROTA.BIZ
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - онлайн публикации
 

«О чем доклад? Узлы и компоненты Hadoop Зачем обеспечивать высокую доступность кластера Как постичь дзен Hadoop High Availability (HA) Наш опыт внедрения HA Что будет в докладе ...»

Hadoop High availability: опыт Badoo

Крашенинников Александр

О чем доклад?

Узлы и компоненты Hadoop

Зачем обеспечивать высокую доступность

кластера

Как постичь дзен Hadoop

High Availability (HA)

Наш опыт внедрения HA

Что будет в докладе

блок-схем

sequence

diagrams

слайдов

про

полезных

ссылок

Hadoop

истории

классных

факапов

картины

советов

Ложкина

КО

Что такое Hadoop?

Hadoop

Программный комплекс для

распределённых вычислений

Open-source

Иногда - синоним “Big Data” Использование Hadoop в Badoo Hadoop в Badoo Инсталляция из 67 машин Объём файловой системы ~ 850 Tb, 90M файлов CPU: 2700 cores RAM: 10 Tb История появления С 2013 года - долговременное хранилище BI данных Концепция - распределённая файловая система + средства обработки Hadoop в Badoo: Deep storage Deep storage для хранения исторических данных “Backup” данных из аналитической базы По некоторым источникам есть история за несколько лет 600 Tb занятого дискового пространства Hadoop в Badoo: ETL ETL (Extract Transform Load) - важный процесс BI Данные из внешнего/внутреннего мира = информационная модель компании Вход может быть в 100500 разных видах, выход набор таблиц в РСУБД стиле Hadoop в Badoo: ETL Загрузили много данных из внешних источников, посчитали свёртки, выгрузили в аналитическую БД 700 заданий в сутки Десятки Tb на чтение Hadoop в Badoo: realtime Многие считают, что Hadoop и realtime несовместимо Но при правильных инструментах это не так :) Keywords: Apache Spark, Storm, Samza Hadoop в Badoo: realtime In-house система потоковой аналитики на базе Apache Spark Строим статистику в “rolling window” (10 минут, 1час, 1 день) Hadoop в Badoo: realtime 800 типов статистических событий 450 - 600 K событий в секунду на вход 120 K метрик в секунду на выходе Anomaly Detection на выходные данные Цена downtime Недоступность части данных для аналитиков к началу business time Деградация графиков для realtime Невозможность получения оперативной статистики Anomaly Detection “слепнет” Из чего сделан Hadoop Hadoop "на пальцах" Вычисления Хранилище Yet Hadoop Another Distributed Resource FileSystem Negotiator HDFS Иерархическая файловая система Распределена по узлам кластера Поддерживает репликацию данных HDFS HDFS HDFS: NameNode Координатор файловой системы Хранилище индекса FS Входная точка для операций с данными HDFS HDFS: DataNode Принимает read/write запросы к содержимому файлов HDFS Хранит содержимое файлов на своей дисковой подсистеме HDFS: запрос на чтение Клиент обращается к NameNode с запросом getFile NameNode определяет работающие ноды, где хранится файл Сообщает клиенту адрес, куда обращаться HDFS: чтение файла HDFS: чтение файла HDFS: чтение файла HDFS: запрос с отказом DataNode NameNode отправляет клиента на “живую” реплику файла HDFS: реальность Что будет, если сервис NameNode недоступен для клиентов?

HDFS: запрос с отказом NameNode HDFS: запрос с отказом NameNode HDFS: запрос с отказом NameNode HDFS: выводы Выход из строя DataNode не критичен, пока есть хотя бы одна, хранящая копию данных Выход из строя NameNode ведёт к полной недоступности HDFS YARN Набор сервисов для выполнения вычислений на кластере API для запуска клиентских программ Менеджмент ресурсов YARN YARN YARN: ResourceManager Координатор вычислений на кластере API для запуска программ Менеджмент ресурсов кластера (CPU, RAM) YARN YARN: NodeManager Сервис на “рабочих” машинах кластера Принимает запросы на создание JVM с заданным размером HEAP и резервированием CPU Исполняет пользовательский код в этих JVM YARN: использование Клиент обращается к NodeManager за ресурсами NodeManager создаёт JVM (“контейнеры”) на машинах кластера Запуск клиентского кода в контейнерах YARN: отказ NodeManager Что происходит при недоступности ResourceManager?





YARN: отказ ResourceManager Вспоминаем картинку про менеджера и разработчика YARN: выводы Выход из строя NodeManager приводит к потере части ресурсов кластера Выход из строя ResourceManager’а приводит к невозможности запуска чего-либо на кластере Опыт Badoo по эксплуатации Hadoop до HA До HA: проблемы NameNode NameNode пишет все операции модификации данных в edit-log При старте NameNode, edit-log объединяются в образ файловой системы fsimage До HA: проблемы NameNode При высоком uptime перезагрузка могла достигать нескольких часов (sick!) Варианты решения проблем NameNode перезапуск NN раз в месяц ручное поэтапное подсовывание editлогов использовать свежий Hadoop :) правильно настроить edit-logs Fuckup из жизни

1. Однажды мы не смогли подняться из editлогов

2. Кластер лежит, пользователи бегают и судорожно машут руками

3. Админ пьёт валокордин

4. Члены команды BI изучают stack-trace ошибок Реанимационные меры

1. Патч кода восстановления

2. Копирование edit-логов на отдельную машину

3. Восстановление с патченным кодом

4. Копирование fsimage обратно

5. PROFIT!

6. Downtime - почти сутки

7. Литры кофе и тонна нервов Так зачем нужен HA?

При HA Риски без HA Fault-tolerance HDFS = набор несвязных Низкий downtime бинарей Не теряем $$$ Вместо Крепкий сон вычислительного кластера - куча несвязных машин И что же делать?

High Availability в теории Hot standby Round-robin request balancing Шардинг High Availability в теории Hot standby - используется в Hadoop для резервирования SPOF (NameNode, ResourceManager) Шардинг - Federated NameNode HA HDFS: общая схема Требует развертывания дополнительных сервисов Предоставляет hot standby для NameNode HA HDFS: общая схема HA HDFS: общая схема Запросы обслуживает одна активная NN Есть реплика, читающая журнал с транзакциями HA HDFS: сервисы Кластер Zookeeper Сервис ZKFC (failure controller) Сервис журналов (транзакций) Standby NameNode HA HDFS: компоненты failover HA HDFS: Zookeeper

Распределённая система с функционалом:

lock-service leader election иерархическое хранение конфигураций

В рамках HDFS HA:

выбирает активную NN оповещает клиентов об изменении статуса NN HA HDFS: ZKFailoverController (ZKFC) Сервис для автоматического переключения NN запускается на машинах NN мониторит живость локальной NN подписан на уведомления от ZooKeeper производит failover HA HDFS: JournalNode Распределённое хранилище транзакций NN Отсутствие SPOF - несколько экземпляров сервиса Запись в самую медленную реплику не тормозит общий процесс Механизм failover https://issues .

apache.org/jira/browse/HDFS-2185 HDFS failover: summary Активная NN держит лок в ZK “Пропажа” лока - сигнал к переключению Произвольный ZKFC пытается сделать свою NN активной в ZK Если удалось - переводит остальные NN в standby, а локальную делает active HA YARN: общая схема Hot standby для ResourceManager (входная точка кластера) Требует наличия ZooKeeper и второго экземпляра ResourceManager HA YARN: общая схема HA YARN: общая схема ResourceManager’ы используют механизм leader-election, предоставляемый Zookeeper Для репликации состояния мастера используется хранилище Zookeeper Контроллер failover’а встроен в сам демон RM, и не требует отдельного приложения Адаптация клиентских приложений HDFS: клиентский API Главная мысль - переход к HA потребует изменения клиентского кода Об этом не принято широко писать в документации HDFS: клиентский API Native API клиенты - в основном - JAVA JAVA-клиенты знают про конфигурацию HA WebHDFS HTTP-based, для любого языка клиенты не знают, какая NN активная WebHDFS: standby NN curl http://stanbynn.domain:50070/webhdfs/v1/?op=LISTSTATUS { "RemoteException":

{ "exception":"StandbyException", "message":"Operation category READ is not supported in state standby" } } Standby-нода не обслуживает клиентские запросы http://$host:50070/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus WebHDFS: standby NN Определённо, должен быть workaround!

Мы придумали 3 варианта

Надо выбрать один :)

Select master: cached metadata Иметь на клиентах список всех NameNode Последовательно опросить их, вычислив мастера Положить в кеш адрес активного сервиса Select master: cached metadata Select master: cached metadata

Pro:

1. Просто, как валенок

–  –  –

1. Простота конфигурации

2. Более одного решения Nginx HAProxy ваш любимый Select master: hardware balancer Физическая железяка В Badoo в каждом ДЦ Маршрутизирует весь трафик Имеет функции и возможности тюнинга, превосходящие программный балансер Умеем его готовить Советы из опыта эксплуатации (software) HDFS: rock your NameNode

Простое правило:

1М файлов = 1 Gb heap size для NN В противном случае наблюдается деградация Не влезли в RAM одного хоста - добро пожаловать в Federated HDFS (мы пока не доросли до него) HDFS: rock your NameNode Вдохновлялись статьей от Hortonworks Асинхронное логирование HDFS Достаточное число потоков для обработки API запросов Выключили atime Патч для socket listen queue - HADOOP-14560 Заменили JSON либу WebHDFS Тюнинг Zookeeper Обязательно!

Настройка ротации snapshot Обязательно!

-XX:OnOutOfMemoryError="kill -9 %p" Просто примите это за реальность Советы из опыта эксплуатации (hardware) HDFS: datanode Т.к. репликация программная, то нет большого смысла использовать RAID JBOD - наш друг: сила в шпинделях!

HDFS: выбор диска для блоков HDFS: выбор диска для блоков By default - Round Robin Но на первом диске - OS = он заведомо меньше Всегда образуется перекос Решение 1: настройка для датаноды AvailableSpaceVolumeChoosingPolicy Решение 2: Hadoop 3 + междисковый балансер Человек против машины Может ли один аналитик уложить кластер?

Нет ничего невозможного!

Пишет 4-х этажный SQL Запускаем, ждём 5 минут Забиваем IN/OUT eth на датанодах Забиваем свитч Залезаем в iowait PROFIT!

How to avoid На датанодах - 10Gb eth или:

Стараемся уважать data-locality (работаем с данными по месту их физического хранения) Что вы узнали Что вы узнали Из каких базовых сервисов состоит Hadoop Какие там существуют SPOF С помощью каких средств они устраняются Какие действия предпринять для адаптации клиентов кластера к HA Полезные материалы https://tech.badoo.com Доклад Badoo про использование Hadoop Инструкции по настройке HA Тюнинг NameNode Near-realtime аналитика на Hadoop Кажется, я обещал 2 картины?

Спасибо!

krash@corp.badoo.com krash3@gmail.com






Похожие работы:

«Муниципальное бюджетное учреждение дополнительного образования "Сертоловская детская школа искусств"ПРИНЯТА УТВЕРЖДЕНА на Педагогическом совете школы Приказом директора школы Протокол № 8 от 29.08.17г. № 32 от 29.08.2017г. Дополнительные...»

«КУЗИН ИВАН ВЛАДИЛЕНОВИЧ ТЕЛЕСНОСТЬ КАК СОЦИОКУЛЬТУРНЫЙ КОНЦЕПТ Специальность 24.00.01 – теория и история культуры Диссертация на соискание ученой степени доктора философских наук Научный консультант доктор философских наук, профессор ПИГРОВ КОНСТАНТИН СЕМЕНОВИЧ Санкт-Петербург ОГЛАВЛЕНИЕ ВВЕДЕНИЕ..4 ГЛАВА I. БЫТИЕ КАК ВЗГЛЯД, или чувс...»

«ДЕСЕКУЛЯРИЗАЦИЯ И СВЕТСКОЕ ГОСУДАРСТВО До сравнительно недавнего времени секуляризация рассматривалась как объективный исторический процесс. Суть его, по удачному определению Бр. Р. Вилсона, состоит в "постепенном вытеснении представлений о сверхъестественном из всех со...»

«ISSUeS Of hIStOrIOgraPhy aND SOUrce StUDIeS ISSN 2409-630X (Print), ISSN 2618-916X (Online) DOI: 10.15507/2409-630X.041.014.201802.223-238 УДК 930:314 Г. Н. Ульянова Институт российской истории РАН (Москва, Россия), e-mail: galina.ulian...»

«ВЕСТНИК УДМУРТСКОГО УНИВЕРСИТЕТА 17 ИСТОРИЯ И ФИЛОЛОГИЯ 2015. Т. 25, вып. 6 УДК 81’38 А.Ж. Фаттахова МОРФОЛОГИЧЕСКИЕ СРЕДСТВА СОЗДАНИЯ ГИПЕРБОЛИЧЕСКОГО ЗНАЧЕНИЯ В ПОЭТИЧЕСКОМ ТВОРЧЕСТВЕ В. МАЯКОВСК...»

«Литература 1. Barblan A. 2001. Academic Cooperation and Freedom of Movement in Europe: What was and What will be. Higher Education in Europe.2. Bazhenova E. 2013. Content Analysis of the Category Academic Mo...»

«Генрих Крамер Яков Шпренгер Молот ведьм Текст предоставлен правообладателем http://www.litres.ru/pages/biblio_book/?art=2377645 Молот ведьм / Яков Шпренгер, Генрих Крамер ; [пер. с лат. Н. Цветкова].: Эксмо; Москва; 2011 ISBN 978-5-699-52139-5 Аннотация Этот любопытный...»

«Первая мировая война и Русский мир 75 УДК 94(47)1917/1918 UDC DOI: 10.17223/18572685/37/6 173Й КАМЕНЕЦКИЙ И 174Й РОМЕНСКИЙ ПЕХОТНЫЕ ПОЛКИ В ПЕРВЫЙ ГОД ВЕЛИКОЙ ВОЙНЫ В.В. Коровин Юго-Западный государственный университет Россия, 305040, г. Курск, ул. 50 ле...»







 
2019 www.mash.dobrota.biz - «Бесплатная электронная библиотека - онлайн публикации»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.