Платформа диагностики больших данных OPPO «Компас» официально имеет открытый исходный код
Платформа диагностики больших данных OPPO «Компас» официально имеет открытый исходный код
PART

01

фон

Платформа больших данных OPPO в настоящее время включает более 20 сервисных компонентов, объем данных более 1 ЭБ, почти миллион автономных задач, тысячи задач в реальном времени и более тысячи аналитиков разработки данных. Это также приводит к проблеме сложности системы. С одной стороны, пользователи часто «не понимают» статуса выполнения своих задач, будь то проблемы с производительностью, проблемы с настройкой параметров или даже некоторые распространенные проблемы с ошибками разрешений, им необходимо это делать. Платформа предоставляет конкретные решения; с другой стороны, платформа сталкивается с различными сложными задачами, и персоналу по эксплуатации и техническому обслуживанию часто приходится обнаруживать и устранять ошибки в задачах. высокий. Таким образом, существует острая необходимость в мониторинге и диагностике задач в режиме реального времени. Он должен не только помогать пользователям быстро обнаруживать ненормальные проблемы, но также предоставлять конкретные предложения и планы оптимизации. Он также может управлять различными «зомби» и необоснованными задачами. как уменьшить затраты и увеличить затраты эффективной цели. Согласно исследованиям, в настоящее время в отрасли не существует зрелой платформы диагностики задач с открытым исходным кодом. С этой целью мы разработали платформу диагностики больших данных. Благодаря платформе диагностики количество экземпляров задач оптимизации в неделю превышает 20 000, и были достигнуты хорошие результаты.

«Компас» — это проект с открытым исходным кодом, основанный на внутренней платформе диагностики больших данных OPPO (адрес проекта: https://github.com/cubefs/compass), который можно использовать для диагностики больших данных, выполняемых на платформах планирования, таких как DolphinScheduler и Airflow. . Задача. Мы надеемся внести свой вклад в сообщество открытого исходного кода через «Компас» и надеемся, что больше людей примут участие для совместного решения болевых точек и проблем диагностики задач.

PART

02

Основные функции компаса

В настоящее время Compass поддерживает следующие функции и возможности:

  • Ненавязчивая мгновенная диагностика: вы можете ощутить диагностический эффект без изменения существующей платформы планирования.
  • Поддерживает несколько основных платформ планирования, таких как DolphinScheduler, Airflow или собственной разработки и т. д.
  • Поддержка многоверсионной диагностики и анализа журналов задач Spark, Hadoop 2.x и 3.x.
  • Поддержка аномальной диагностики уровня рабочего процесса, выявление различных сбоев и аномальное базовое потребление вопрос времени.
  • поддерживать Диагностика исключений на уровне механизма,Включать Перекос данных、Большой скан таблицы、трата памятиждать 14 добрыйаномальныйтип。
  • Поддерживает написание различных правил сопоставления журналов и настройку пороговых значений, которые можно оптимизировать в соответствии с реальными сценариями.

Обзор типов диагностики, поддерживаемых Compass:

диагностическое измерение

Тип диагноза

Описание типа

анализ отказов

Запустить не удалось

финальный Запустить не миссия удалось

первая неудача

Успешные задачи с повторами больше 1

долгосрочный провал

недавно10небо Запустить не миссия удалось

Анализ, требующий много времени

Базовая временная аномалия

Задачи, которые заканчиваются раньше или позже относительно обычного исторического времени окончания.

Аномальное базовое потребление времени

Задачи, которые выполняются слишком долго или слишком быстро по сравнению с историческим временем безотказной работы.

Длительное время работы

Задачи, выполнение которых занимает более 2 часов

Анализ ошибок

SQL не удалось

Задачи, которые не удалось выполнить из-за проблем с выполнением sql

перемешать не удалось

Задачи, которые не удалось выполнить из-за проблем с перемешиванием выполнения

переполнение памяти

потому чтопереполнение Задача не выполнена из-за проблемы с памятью

анализ затрат

трата памяти

Задачи с пиковым использованием памяти и низким коэффициентом общего объема памяти

отходы процессора

Задачи, в которых соотношение времени вычислений драйвера/исполнителя к общему времени вычислений ЦП слишком мало.

анализ эффективности

Большой скан таблицы

Задачи, которые не ограничивают разбиение на разделы, что приводит к слишком большому количеству строк сканирования.

ООМ предупреждение

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

Перекос данных

Есть задачи на стадии, где максимальный объем данных, обрабатываемых задачей, значительно превышает медианный.

Работа занимает аномально много времени

Задачи с высоким соотношением времени простоя и времени выполнения задания.

Этап занимает аномально много времени

Задачи с высоким соотношением времени простоя этапа к времени его работы.

Задача длинный хвост

На этапе есть задачи, максимальное время выполнения которых значительно превышает медианное.

HDFS зависает

На этапе есть задачи, скорость обработки которых слишком низкая.

Слишком много задач спекулятивного выполнения

На этапе часто появляются задачи, которые выполняются спекулятивно.

Глобальное исключение сортировки

Глобальная сортировка приводит к тому, что задачи выполняются слишком долго

(1) Неинвазивная, мгновенная диагностика

В качестве примера мы возьмем платформу планирования DolphinScheduler.

С архитектурной точки зрения MasterServer в основном отвечает за сегментацию задач DAG, мониторинг отправки задач и сохранение данных экземпляра задачи в БД. WorkerServer в основном отвечает за выполнение задач и предоставление услуг журналов. Он также обеспечивает функцию просмотра. удаленные журналы в пользовательском интерфейсе. Чтобы получить метаданные задачи и соответствующие журналы для диагностики, один из способов — прослушивать события состояния задачи в MasterServer, а другой — подписаться на MySQL. журнал бинлога. Чтобы уменьшить количество модификаций DolphinScheduler, мы приняли второй подход.

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

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

(2) Диагностика отклонений на уровне рабочего процесса

Примеры задач слоя для рабочего процесса,Распространенные проблемы можно разделить на две категории: первая — невыполненные задачи.,Напримерпервая неудача、финальный Запустить не удалосьидолгосрочный провал другого типа — трудоемкая аномальная задача, например «Базовая»; временная аномалия、Аномальное базовое потребление времении Длительное время работы。

1. Диагностика неудачных задач

Пользователи часто игнорируют первое неудачи или даже увеличить количество повторных попыток. Если не относиться к этому серьезно, это может в конечном итоге перерасти в окончательный провал. Запись и диагностика компаса анализируют причину каждого сбоя, что позволяет не только быстро обнаружить проблему для пользователей, но и найти основную причину во время обратного отслеживания неисправности. длядолгосрочный миссия провала,Необходимо уведомить пользователей о необходимости исправить и очистить,Избегайте растраты ресурсов.

2. Диагностика аномально трудоемких задач

Ориентирован на потребности SLA Чтобы гарантировать выполнение задач, компас не только анализирует нормальное время окончания соответствующей истории, но и то, заканчиваются ли задачи раньше или позже, то есть Базовая временная аномалия, также проанализировано относительное историческое нормальное время работы, является ли время работы слишком длинным или слишком коротким, то есть Аномальное базовое потребление времени。для Длительное время работызадача,Например, большие задачи продолжительностью более нескольких часов.,И пользователям, и платформам нужен анализ, что является проблемой самой задачи.,Это все еще проблема платформы.

(3) Диагностика исключений на уровне искрового двигателя

Для задач Spark общие проблемы можно разделить на три категории: одна — ошибки времени выполнения, другая — эффективность времени выполнения и последняя категория — проблемы с использованием ресурсов.

1. Ошибка диагностики при запуске

Общие ошибки, сообщаемые на уровне механизма, включают: sql неудача, перетасовка Сбой ипереполнение запоминать. Этот тип отчета об ошибках имеет очевидные характеристики журнала.,Категории могут быть извлечены на основе ключевых слов.,Используйте существующую базу знаний,Предоставьте пользователям конкретные решения,Улучшите пользовательский опыт и эффективность.

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

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

( https://github.com/cubefs/shuttle )

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

Помимо вышеперечисленных проблем, Luopan также предоставляет более 40 правил и предложений идентификации журналов, и вы также можете расширить правила идентификации в соответствии с реальными сценариями.

2. Диагностика аномалий эффективности во время выполнения

Если выполнение задачи занимает много времени или внезапно замедляется, пользователь не может напрямую определить, является ли это проблемой самой задачи, проблемой платформы планирования или проблемой вычислительного механизма непосредственно на платформе планирования. Чтобы расследовать Spark Двигатель обычно требует профессионального анализа SparkUI относительно неинтуитивен. Компания Compass провела комплексную проверку проблем, влияющих на эффективность работы двигателя, охватывающую большие скан таблицы,Перекос данных,Task Длинный хвост, глобальная сортировка, OOM Риск, Работа/этап Исключение, требующее много времени, HDFS Заикание, спекулятивное исполнение Task Слишком много проблем.

(1)Большой скан таблицы

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

(2)Перекос данных

Компас обнаруживает каждый Task Данные обрабатывают громкость и определяют, наклонены ли данные. Когда Перекос данные могут вызвать переполнение задачи памяти,Низкая загрузка вычислительных ресурсов,Операция Время выполнения дольше, чем ожидалось。

(3) Задача «длинный хвост»

Компас обнаруживает все Task отнимает много времени и пресса Stage Представлено в виде гистограммы, чтобы пользователи могли определить, какие Stage Для выполнения требуется аномальный. Причина обычно в том, что чтение данныхизлишних происходит медленно. Если это Перекос данныхвызывая чтениеданныеизлишний,затем нажмите Перекос способ обработки данных. если в то же время HDFS В случае зависания чтение данных будет медленным, и необходимо исследовать проблемы кластера.

(4)Глобальное исключение сортировки

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

(5) Анализ раннего предупреждения OOM

Compass определяет соотношение памяти для выполнения широковещательных рассылок SQL. Если широковещательные данные слишком велики, это приведет к возникновению риска OOM в драйвере или исполнителе. Пользователям необходимо напомнить об отключении широковещательных рассылок или отмене принудительных широковещательных рассылок и при необходимости запросить дополнительную память.

(6) Работа/этап занимает ненормальное время.

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

(7) HDFS застрял

Когда HDFS зависает, это влияет на скорость чтения данных задачи, тем самым влияя на эффективность выполнения. Вам необходимо обратить внимание на состояние работы кластера HDFS.

(8) Слишком много спекулятивных задач исполнения.

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

3. Диагностика ненормального использования ресурсов.

Для пользователей, которые не уверены в использовании ЦП и памяти задачами и о том, как подать заявку на крупномасштабные ресурсы, Luopan интуитивно представляет соотношение использования ЦП и памяти, что упрощает пользователям оптимизацию параметров конфигурации ресурсов для экономии затрат на ресурсы.

Luopan также предоставляет функцию анализа журнала GC, чтобы проверить, есть ли проблемы с производительностью в процессе выполнения GC.

(4) Диагностика одним щелчком мыши, обзор отчетов и другие функции.

В дополнение к вышеперечисленным функциям мы также предоставляем функцию диагностики одним щелчком мыши, чтобы предоставить пользователям подробные диагностические отчеты. Также имеются обзорные данные отчета и функции белого списка.

PART

03

Техническая архитектура Компаса

Luopan в основном состоит из модуля метаданных задач уровня рабочего процесса синхронизации, модуля метаданных приложения Yarn/Spark для синхронизации, связанного модуля метаданных приложения уровня рабочего процесса/уровня механизма, модуля обнаружения аномалий задач рабочего процесса, модуля обнаружения аномалий уровня механизма и модуля отображения портала.

Общая схема архитектуры

Общая архитектура разделена на 3 уровня:

  • Первый уровень — подключение к внешним системам, включая планировщик, Yarn, HistoryServer, HDFS. система ожидания, данные элемента синхронизации, состояние кластера, состояние операционной среды, журнал ожиданияприжатез, диагностический анализ системы;
  • Второй уровень — уровень архитектуры.,включатьданныеколлекция、Юаньданныеассоциация&Стандартизация модели、аномальный Обнаружение、модуль «Портал диагностики»;
  • Третий уровень — это уровень базовых компонентов, включающий MySQL, Elasticsearch, Kafka, Redis и другие компоненты.

Конкретные этапы процесса модуля:

(1)Этап сбора данных:от Система планирования Воляпользователь、DAG、Операция、Записи выполнения данных элементов рабочего процесса синхронизируются с диагностической системой Yarn по расписанию; Ресурс Менеджер、Spark HistoryServer App Метаданные передаются в систему диагностики для разметки пути хранения показателей работы задания, что служит основой для последующих этапов обработки данных;

(2)данныеассоциация&Стандартизация моделиэтап:Воляшаг за шагомколлекция Запись выполнения рабочего процесса、Spark App、Yarn Приложение, конфигурация операционной среды кластера и другие данные проходят через ApplicationID Носитель связан. На этом этапе метаданные уровня рабочего процесса и уровня механизма связаны, и получена стандартная модель данных. (user, dag, task, application, clusterConfig, time)

(3)Уровень рабочего процесса&слой двигателяаномальный Обнаружениеэтап:Уже полученоданныестандартная модель,противстандартная модельдальше Workflow В процессе обнаружения аномалий в то же время платформа поддерживает набор баз знаний по управлению данными, накопленных за многие годы, загружает базу знаний в стандартную модель и использует эвристические правила для одновременного анализа данных индикаторов и журналов стандартной модели для исключения в сочетании со статусом кластера и статусом операционной среды анализируют и получают аномальные результаты на уровне рабочего процесса и уровне механизма;

(4)бизнес-вид:хранилище、Анализируйте данные и предоставляйте пользователям обзор задач、Диагностика задач уровня рабочего процесса、слой двигателя Операция Application Диагностика: на уровне рабочего процесса отображаются исключения, вызванные выполнением задач планировщиком, например, сбои задач, задачи обратной связи, задачи отклонения от базовой линии и т. д., а на уровне вычислительного механизма отображаются Spark Проблемы, связанные с затратами времени, использованием ресурсов и временем выполнения, вызванные выполнением задания;

PART

04

DolphinScheduler & Compass

DolphinScheduler — это распределенная и масштабируемая платформа координации рабочих процессов с открытым исходным кодом, мощным визуальным интерфейсом DAG и богатыми сценариями использования. Она обеспечивает более 30 типов задач, таких как Spark, Hive и Flink, с высокой надежностью и высокой масштабируемостью. После многих лет практики и накопления DolphinScheduler стал зрелым проектом с открытым исходным кодом и имеет широкий круг групп пользователей.

(1) Опыт развертывания

Здесь мы возьмем DolphinScheduler (версия 2.0.6) в качестве примера, чтобы узнать, как быстро интегрировать компас. Если вы еще не развернули DolphinScheduler, обратитесь к официальному руководству по развертыванию веб-сайта. Если вы уже используете DolphinScheduler, вам нужно только развернуть Compass. Compass поддерживает автономное и кластерное развертывание. Если вы хотите быстро опробовать функции Compass, вы можете использовать режим автономного развертывания. Compass использует Kafka, Redis, Zookeeper и ElasticSearch, которые необходимо установить заранее. зависимые службы завершены, Compass можно развернуть с помощью сценария развертывания:

компиляция кода

Язык кода:javascript
копировать
git clone https://github.com/cubefs/compass.gitcd compassmvn package -DskipTests

Изменить конфигурацию

Язык кода:javascript
копировать
cd dist/compass# Измените источник данных и соответствующую конфигурацию, как показано ниже в vim. bin/compass_env.sh
  1. Развертывание в один клик
Язык кода:javascript
копировать
./bin/start_all.sh

(2) Примеры использования

Сначала создайте хороший проект в DolphinScheduler.

Затем создайте рабочий процесс для задачи SPARK.

Наконец подключитесь к Интернету и запустите задачу.

Откройте веб-интерфейс Compass, путь по умолчанию — http://localhost:7075/compass/, введите пароль учетной записи DolphinScheduler, и Compass автоматически синхронизирует информацию пользователя DolphinScheduler.

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

PART

05

Планирование открытого исходного кода Luopan

  • Луо Пан в основном фокусируется на позиционировании и анализе проблем в двух аспектах: задачах автономного планирования и вычислительных механизмах. Он использует богатую базу знаний, чтобы предоставлять пользователям решения по оптимизации, одновременно достигая цели снижения затрат и повышения эффективности.
  • В настоящее время Открытый исходный Часть кода в основном содержит рабочий процесс задачи и Spark Диагностика проблем на уровне двигателя будет опубликована в ближайшее время. Flink Задача диагностики проблем аномальных ресурсов.
  • В будущем Воля представит более глубокие алгоритмы и диагностические модели.,Внедрение правил и пороговых значений,Сделайте аномальный диагноз более интеллектуальным.

PART

06

Участвуйте и вносите свой вклад

[Адрес Github]: https://github.com/cubefs/compass

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

About AndesBrain

Интеллектуальное облако Анд

OPPO Интеллектуальное облако Анд (AndesBrain) — это пантерминальное интеллектуальное облако, которое обслуживает отдельных лиц, семьи и разработчиков и стремится «сделать терминалы умнее». как OPPO Одна из трех основных технологий, Интеллектуальное. облако И обеспечивает хранение данных и интеллектуальные вычислительные услуги с совместной работой устройств и облаков и является «цифровым мозгом», который интегрирует все.

0 0 голосов

Рейтинг статьи

Эта статья воспроизведена из Интеллектуальное облако И оригинальная ссылка: https://mp.weixin.qq.com/s/YRropn7qW0upXTLTNK53-A.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose