Архитектура больших данных Hulu и опыт работы с приложениями

искусственный интеллект Spark Эксплуатация и техническое обслуживание Архитектура
Архитектура больших данных Hulu и опыт работы с приложениями


Источник контента:12 августа 2017 г. Дун Сичэн, глава отдела архитектуры больших данных Hulu, выступил с речью на тему «Архитектура больших данных Hulu и опыт приложений» на «Дне практики NetEase Erudite: конференция по технологиям больших данных и искусственного интеллекта». IT Dajiashuo (ID: itdakashuo), как эксклюзивный видео-партнер, имеет право публиковать видео после просмотра организатором и спикерами.

Количество слов для чтения:1540 | 4 минуты чтения

Видеообращение с гостевым выступлением:suo.im/4ymiiP

Резюме

Донг Сичэн, глава отдела архитектуры больших данных Hulu, поделился практическим опытом Hulu в области архитектуры больших данных и приложений.

Overview

На картинке выше показана общая архитектура больших данных Hulu. Наша архитектура в основном такая же, как и другие архитектуры, с небольшими отличиями.

Hulu в основном занимается четырьмя вещами: пряжей, пакетной обработкой, интерактивными вычислениями, потоковой обработкой и услугами.

Мы разработали интерактивный вычислительный движок Nesto, а для запуска сервисов у нас есть инструмент под названием Voidbox.

Кроме того, мы также предоставляем различные инструменты для облегчения использования всего кластера. Например, средство управления клиентами Firework, а также единый центр управления конфигурациями Horcrux и другие инструменты.

Кроме того, в правой части рисунка выше мы видим, что мы используем два инструмента управления кластером, Cloudera Manager и Hawkeye.

У нас есть 4 кластера, 3 центра обработки данных, и эти инфраструктуры используются всеми командами в Пекине и США. В настоящее время около десяти человек в инфраструктуре больших данных отвечают за эксплуатацию, обслуживание, оптимизацию и развитие всего кластера.

Hulu Focus

Hawkeye

Частью работы основной группы эксплуатации и обслуживания больших данных является эксплуатация и техническое обслуживание. Эксплуатация и обслуживание обязательно требуют мощной системы управления и мониторинга.Hawkeye в основном помогает пользователям лучше понимать изменения в данных или приложениях и в основном делится на три части.

Первый – это отчет. Мы будем периодически отправлять некоторые отчеты каждой команде, эти отчеты включают в себя распределение горячих и холодных данных, распространение небольших файлов и рост данных. Держите команды в курсе изменений в данных.

Во-вторых, различные будильники. Существуют предупреждения об уровне обслуживания, предупреждения о росте объемов данных, предупреждения о больших приложениях, предупреждения о состоянии службы и многое другое. Некоторые из этих предупреждений отправляются группе данных, а некоторые — команде инфраструктуры, чтобы понять работу всего кластера.

У нас также есть автоматизированные программы, которые автоматически генерируют задачи в зависимости от состояния диска или машины и отправляют их команде, находящейся в компьютерном зале, чтобы помочь нам исправить это.

Firework

Firework объединяет всю информацию о местоположении и версии Hadoop внутри hulu. Если вы хотите использовать Firework для доступа к различным кластерам, вам нужно только использовать соответствующую команду, чтобы указать, к какому компьютерному залу получить доступ.Он автоматически кэширует соответствующую версию из центрального репозитория локально, а затем получает доступ к центральному, применяя соответствующий клиент. .

Hulu Spark

В настоящее время Spark обновлен до версии 2.1, и во внутренней версии мы установили более 30 относительно крупных исправлений.

При совмещении sparkstreaming и kafka любые заморочки вызовут проблемы с spark streaming, потому что он очень слаб по стабильности, а open source сообщество еще не решило эту проблему.

У каждой искры будет много исполнителей, и иногда клиентам необходимо отлаживать каждого исполнителя. Мы будем использовать некоторые эвристические алгоритмы для динамического обнаружения работы каждого исполнителя и принятия некоторых мер для исполнителей, у которых есть проблемы.

У нас есть высокопроизводительные приложения, для таких приложений мы позволяем пользователям настраивать количество исполнителей, которые может запускать каждый узел.

Вышеприведенные примеры — это некоторые корректировки и оптимизации, которые мы внесли в spark, чтобы помочь пользователям улучшить стабильность и производительность spark.

OLAP Engines

Сейчас движков OLAP становится все больше и больше, и OLAP обычно делится на три уровня.

Как показано на рисунке выше, нижний уровень — это различные механизмы OLAP, включая Impala, Presto, Nesto и Druid.

Выше приведены приложения, разработанные на базе OLAP-движка, такие как многомерный анализ, анализ временных рядов, когортный анализ и анализ скорости обращения пользователей.

В топе различные системы визуализации, Tableau и Hulu BI Portal.

OLAP - Presto

Одним из наиболее полезных механизмов OLAP является Presto. Hulu включил функцию группы ресурсов в Presto, которая может разделить ресурсы OLAP на несколько пулов ресурсов для использования разными группами.

ElasticPresto — это масштабируемая Presto, которая динамически увеличивает или уменьшает вычислительные ресурсы в зависимости от нагрузки запроса. В этой части пряжа предоставляет нам очень хорошую операционную систему. Запуск Presto на пряже упрощает развертывание, делает последовательные обновления очень простыми и гибко масштабирует доступные вычислительные ресурсы в соответствии с условиями нагрузки.

OLAP — история Nesto

Hulu разработала вычислительный движок Nesto, который в основном решает проблему вложенных запросов данных.

Hadoop Multi-DC

Challenge

Объем данных очень велик, приложение очень большое, и существует множество смешанных типов приложений.

Мы контролируем время простоя переключения в течение суток, или нескольких часов, или даже меньше.

Сценарий Hulu довольно особенный, потому что мы многонациональная компания, включающая множество офисов, и мы должны координировать свои действия со всеми группами данных в нескольких офисах.

Если вы хотите выполнить прозрачную миграцию, вам может потребоваться внести множество технических изменений и настроить инфраструктуру (уровень кода), чтобы обеспечить плавную миграцию.

Components

DCNamenode: поддерживает топологии уровня центра обработки данных.

DCTunnel: синхронизирует блоки на основе белых и черных списков на уровне папок, имеет ограничения пропускной способности, репликацию блоков на основе приоритета, корректирует предложения, веб-портал, показывающий прогресс.

DCBalancer: Баланс внутри каждого центра обработки данных.

Суммировать

Создавайте базовые инструменты для лучшего обслуживания пользователей, настраивайте проекты с открытым исходным кодом для особых случаев пользователей и создавайте новые системы для особых сценариев.

На сегодня это все, всем спасибо!