Источник контента: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: Баланс внутри каждого центра обработки данных.
Суммировать
Создавайте базовые инструменты для лучшего обслуживания пользователей, настраивайте проекты с открытым исходным кодом для особых случаев пользователей и создавайте новые системы для особых сценариев.
На сегодня это все, всем спасибо!