01
фон
Платформа больших данных OPPO в настоящее время включает более 20 сервисных компонентов, объем данных более 1 ЭБ, почти миллион автономных задач, тысячи задач в реальном времени и более тысячи аналитиков разработки данных. Это также приводит к проблеме сложности системы. С одной стороны, пользователи часто «не понимают» статуса выполнения своих задач, будь то проблемы с производительностью, проблемы с настройкой параметров или даже некоторые распространенные проблемы с ошибками разрешений, им необходимо это делать. Платформа предоставляет конкретные решения; с другой стороны, платформа сталкивается с различными сложными задачами, и персоналу по эксплуатации и техническому обслуживанию часто приходится обнаруживать и устранять ошибки в задачах. высокий. Таким образом, существует острая необходимость в мониторинге и диагностике задач в режиме реального времени. Он должен не только помогать пользователям быстро обнаруживать ненормальные проблемы, но также предоставлять конкретные предложения и планы оптимизации. Он также может управлять различными «зомби» и необоснованными задачами. как уменьшить затраты и увеличить затраты эффективной цели. Согласно исследованиям, в настоящее время в отрасли не существует зрелой платформы диагностики задач с открытым исходным кодом. С этой целью мы разработали платформу диагностики больших данных. Благодаря платформе диагностики количество экземпляров задач оптимизации в неделю превышает 20 000, и были достигнуты хорошие результаты.
«Компас» — это проект с открытым исходным кодом, основанный на внутренней платформе диагностики больших данных OPPO (адрес проекта: https://github.com/cubefs/compass), который можно использовать для диагностики больших данных, выполняемых на платформах планирования, таких как DolphinScheduler и Airflow. . Задача. Мы надеемся внести свой вклад в сообщество открытого исходного кода через «Компас» и надеемся, что больше людей примут участие для совместного решения болевых точек и проблем диагностики задач.
PART
02
Основные функции компаса
В настоящее время Compass поддерживает следующие функции и возможности:
Обзор типов диагностики, поддерживаемых 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 уровня:
Конкретные этапы процесса модуля:
(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 можно развернуть с помощью сценария развертывания:
компиляция кода
git clone https://github.com/cubefs/compass.gitcd compassmvn package -DskipTests
Изменить конфигурацию
cd dist/compass# Измените источник данных и соответствующую конфигурацию, как показано ниже в vim. bin/compass_env.sh
./bin/start_all.sh
(2) Примеры использования
Сначала создайте хороший проект в DolphinScheduler.
Затем создайте рабочий процесс для задачи SPARK.
Наконец подключитесь к Интернету и запустите задачу.
Откройте веб-интерфейс Compass, путь по умолчанию — http://localhost:7075/compass/, введите пароль учетной записи DolphinScheduler, и Compass автоматически синхронизирует информацию пользователя DolphinScheduler.
Наконец, войдите на страницу выполнения задачи, и вы увидите всю диагностическую информацию об аномальных задачах.
PART
05
Планирование открытого исходного кода Luopan
PART
06
Участвуйте и вносите свой вклад
[Адрес Github]: https://github.com/cubefs/compass
добро пожаловать Участвуйте и вносите свой вклад, если у вас есть какие-либо потребности или предложения, вы можете поднять вопрос. приезжать Github, мы оперативно ответим на ваши вопросы.
About AndesBrain
Интеллектуальное облако Анд
OPPO Интеллектуальное облако Анд (AndesBrain) — это пантерминальное интеллектуальное облако, которое обслуживает отдельных лиц, семьи и разработчиков и стремится «сделать терминалы умнее». как OPPO Одна из трех основных технологий, Интеллектуальное. облако И обеспечивает хранение данных и интеллектуальные вычислительные услуги с совместной работой устройств и облаков и является «цифровым мозгом», который интегрирует все.
0 0 голосов
Рейтинг статьи
Эта статья воспроизведена из Интеллектуальное облако И оригинальная ссылка: https://mp.weixin.qq.com/s/YRropn7qW0upXTLTNK53-A.