1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/meetyoucrop-big-whale

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Big Whale

Big Whale — это платформа для управления задачами распределённых вычислений, разработанная для компании MeetYou Data. Она предоставляет возможности для планирования и выполнения задач пакетной обработки данных с использованием таких инструментов, как Spark и Flink, а также обеспечивает управление приложениями Yarn, обнаружение повторяющихся и больших по объёму приложений и другие функции.

Платформа разработана на основе Spring Boot 2.0 и может быть запущена после сборки. Исходный код доступен на GitHub и Gitee.

Обзор

1. Архитектура

На рисунке представлена архитектура платформы Big Whale.

2. Характеристики

  • Механизм выполнения скриптов на основе SSH обеспечивает простоту и скорость развёртывания, требуя только одного сервиса.
  • Механизм синхронизации состояния задач на основе REST API Yarn обеспечивает совместимость со всеми версиями Spark и Flink.
  • Поддерживает повторные попытки в случае неудачи.
  • Обеспечивает поддержку зависимостей между задачами.
  • Позволяет создавать сложные планы выполнения задач (DAG).
  • Управляет выполнением потоковых задач и отслеживает их состояние.
  • Предоставляет управление приложениями Yarn.

Развёртывание

1. Подготовка

  • Java 1.8 или выше.
  • MySQL 5.1.0 или более поздняя версия.
  • Скачайте проект или клонируйте его из репозитория.
  • Чтобы решить проблему с загрузкой изображений в README.md на GitHub, добавьте соответствующие правила разрешения имён в файл hosts.

2. Установка

  • Создайте базу данных big-whale.
  • Запустите скрипт для создания базы данных: big-whale.sql.
  • Настройте параметры подключения к базе данных в соответствии с конфигурацией Spring Boot, включая информацию о паролях и SMTP.
  • Конфигурационный файл big-whale.properties содержит следующие параметры:
    • ssh.user — имя пользователя с правами на выполнение скриптов, которое будет использоваться платформой в качестве единого пользователя для выполнения скриптов.
    • ssh.password — пароль для указанного пользователя.
    • dingding.enabled — включает ли система оповещения через сервис Dingding.
    • dingding.watcher-token — токен для доступа к общему чату робота в Dingding.
    • yarn.app-memory-threshold — максимальный объём памяти, который может использовать приложение Yarn (в МБ). Значение -1 отключает проверку.
    • yarn.app-white-list — список приложений Yarn, которым разрешено использовать больше памяти, чем указано в параметре yarn.app-memory-threshold. Для этих приложений не будет срабатывать оповещение.
  • Внесите изменения в файл $FLINK_HOME/bin/flink. Это необходимо, поскольку при отправке заданий Flink можно читать только локальные jar-файлы, поэтому нужно заменить путь к jar-файлу в скрипте на путь к файлу, загруженному из HDFS.
  • Соберите проект с помощью команды mvn clean package.

3. Запуск

  • Проверьте, используется ли порт 17070. Если да, закройте процесс, использующий этот порт, или измените конфигурацию порта в проекте и пересоберёте его.
  • Скопируйте файл big-whale.jar из папки target и запустите его командой java -jar big-whale.jar.

4. Начальная конфигурация

  • Откройте URL http://localhost:17070.
  • Введите логин admin и пароль admin.
  • Перейдите в раздел «Права доступа» → «Управление пользователями», чтобы изменить адрес электронной почты текущего пользователя на действующий. В противном случае письма будут отправляться с ошибкой.
  • Добавьте кластеры:
    • Перейдите в «Управление кластерами» → «Кластеры».
    • Укажите адрес веб-интерфейса Yarn ResourceManager в поле «Адрес управления YARN».
    • Задайте путь для хранения пакетов программ в HDFS в поле «Путь к хранилищу пакетов». Например, /data/big-whale/storage.
    • Оставьте поля «Поддержка Flink задач агента пользователя» и «Чёрный список потоковых задач» пустыми. Эти настройки используются для внутренних правил распределения задач.
  • Добавьте пользователей кластера:
    • Перейдите в «Управление кластером» → «Пользователи кластера».
    • Выберите очереди и пользователей прокси для каждого кластера.
  • Добавьте агентов:
    • Перейдите в «Управление агентами» → «Добавить».
    • Можно добавить несколько экземпляров агентов. Они могут работать на разных IP-адресах и портах. При выполнении задачи будет выбран случайный агент. Если один из них недоступен, будет выбран другой. Если все агенты недоступны, задача завершится неудачно.
    • После выбора кластера агенты становятся доступными для отправки заданий Spark или Flink в этом кластере.
  • Добавьте версии вычислительных фреймворков:
    • Перейдите в «Управление версиями» → «Добавить».
    • Разные версии Spark и Flink могут иметь разные команды для отправки задач. Например, для Spark 1.6.0 используется команда spark-submit, а для Spark 2.1.0 — spark2-submit.

Использование

1. Оффлайн планирование

1.1 Добавление
  • В настоящее время поддерживаются три типа задач пакетной обработки: «Shell», «Spark Batch» и «Flink Batch».
  • Перетащите соответствующий значок задачи пакетной обработки из левой панели инструментов, чтобы добавить узел DAG.
    • Поддерживаются параметры времени, такие как ${now}, ${now - 1d} и ${now - 1h@yyyyMMddHHmmss}.
    • Для задач, отличных от «Shell», необходимо загрузить соответствующий jar-файл программы. Здесь представлен jar-файл, созданный для задачи Spark.
    • Поле «Параметры ресурсов» можно оставить пустым.
    • Существует два режима редактирования кода: визуальный и текстовый. Можно переключаться между ними.
    • Нажмите «Тест», чтобы проверить правильность конфигурации узла и возможность его запуска.
    • Чтобы предотвратить чрезмерное использование потоков платформы, задания Spark и Flink выполняются в фоновом режиме. Соответствующие настройки для Spark: --conf spark.yarn.submit.waitAppCompletion=false, для Flink: -d. Однако благодаря фоновому процессу обновления статуса задания, можно гарантировать, что задачи в DAG будут выполняться последовательно.
  • Узлы DAG поддерживают повторные попытки при неудаче.
  • Соедините узлы в правильном порядке, чтобы создать полный DAG.
  • После завершения построения DAG нажмите «Сохранить».
1.2 Операции
  • Просмотрите список задач оффлайн планирования.
  • Нажмите на левую панель инструментов «Задачи планирования», чтобы увидеть список запущенных задач, их статус и журналы запуска узлов.

2. Выполнение в реальном времени

2.1 Добавление

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/meetyoucrop-big-whale.git
git@api.gitlife.ru:oschina-mirror/meetyoucrop-big-whale.git
oschina-mirror
meetyoucrop-big-whale
meetyoucrop-big-whale
master