Spark Streaming Framework
Проект представляет собой
Полнофункциональную платформу для разработки и управления потоковыми вычислениями на основе Spark Streaming, включающую в себя:
- систему планирования задач;
- управление смещениями Kafka;
- веб-интерфейс администратора;
- API для запуска и остановки Spark Streaming;
- оповещение о сбоях и автоматическое восстановление.
Платформа позволяет разработчикам сосредоточиться на бизнес-логике, не отвлекаясь на технические детали, что значительно повышает эффективность и упрощает разработку потоковых приложений.
Описание проекта
Проект основан на платформе для обработки больших данных в реальном времени с использованием Spark Streaming и работает в режиме YARN. Он предоставляет полный набор инструментов для разработки и планирования, упрощая использование Spark Streaming.
Spark Streaming — это популярная платформа для потоковой обработки данных, но существует недостаток готовых решений для её использования. Данный проект предлагает комплексное решение, объединяющее Spark Streaming с Springboot, чтобы упростить разработку и управление потоковыми приложениями.
В течение более года проект успешно используется внутри компании и теперь открыт для общего доступа. Разработчики могут использовать его для создания своих потоковых приложений, не беспокоясь о деталях реализации, таких как чтение данных из Kafka, управление смещениями или запуск и остановка Spark Streaming. Платформа предоставляет готовые решения для этих задач.
Для разработки используется среда IDE (например, IntelliJ IDEA), а также компоненты HDFS, Spark, HBase и Livy. В зависимости от версии кластера можно настроить файл pom.xml.
Проект состоит из трёх частей:
-
Платформа (platform) — веб-интерфейс для управления задачами Spark Streaming, включая планирование, мониторинг, запуск, остановку и управление заданиями. Этот компонент должен быть упакован в виде файла WAR и развёрнут на сервере Tomcat.
-
Фреймворк (framework) — библиотека, содержащая множество функций, упакованных в JAR-файл. Большинство кода в этой библиотеке не требует изменений, достаточно установить его в локальный репозиторий Maven. Фреймворк берёт на себя управление Kafka и другие задачи, освобождая разработчиков от необходимости управлять смещениями, читать данные из определённых топиков Kafka и т. д.
-
Bigdata — скелет для разработки потоковых бизнес-приложений. Здесь есть примеры кода для работы с данными.
Примеры кода для разработки бизнес-логики потоковых приложений:
- Java: bigdata.java.spark.streaming.task.datasynchro.DataSynchroStreaming;
- Scala: bigdata.scala.spark.streaming.task.testscalaapp.ScalaDemo.
Если у вас есть вопросы или нужна дополнительная информация, вы можете связаться с автором проекта.
Адрес проекта на Gitee: https://gitee.com/EA89B45B220E/Spark-Streaming-Framework.
Функции платформы
Поддерживаемые языки: Java и Scala.
Функции платформы включают:
- Управление зависимостями: при сборке проекта нет необходимости включать зависимости в JAR или конфигурационные файлы. Они могут быть загружены во время выполнения через Livy из HDFS.
- Управление версиями заданий: каждый раз, когда вы вносите изменения в бизнес-код или логику Spark Streaming, вы можете загрузить новую версию задания. Также можно просматривать и выполнять предыдущие версии.
- Запуск задач: задачи можно запускать через веб-интерфейс платформы.
- Остановка задач: задачи могут быть остановлены через веб-интерфейс или принудительно через YARN.
- Автоматическое восстановление после сбоев: если задача была остановлена по ошибке или произошёл сбой, платформа автоматически перезапустит её до трёх раз в день.
- Уведомления о сбоях: платформа может отправлять уведомления по SMS, если задача останавливается или завершается по ошибке. Для этого необходимо настроить параметры в пользовательском интерфейсе.
- Выполнение задач в определённой очереди YARN: можно указать очередь YARN для выполнения задачи.
- Настройка параметров запуска: параметры запуска задачи можно настроить через веб-интерфейс.
- Контроль нагрузки: можно настроить максимальное количество данных, которое будет обрабатываться перед тем, как задача будет приостановлена.
- Соединение с Elasticsearch: реализовано пул соединений с Elasticsearch, который можно настроить.
- Соединения с другими базами данных: реализованы пулы соединений с Hbase, MySQL, Oracle и Redis. Их можно настроить, изменив параметры в конфигурационном файле.
- Статистика потребления Kafka: можно отслеживать смещение данных, которые были обработаны из Kafka.
- Предупреждения о накоплении данных: можно задать порог количества данных, при достижении которого будет отправлено уведомление.
- Управление смещениями Kafka: можно указать смещение, с которого следует начать обработку данных из Kafka.
- Визуализация статистики: последние семь дней работы приложения и генерации данных в Kafka отображаются в графическом виде.
- Загрузка журналов: можно скачать журналы Livy и Yarn через SSH.
- Веб-API: доступны API для запуска, остановки, принудительного завершения и получения статуса задач.
Опубликовать ( 0 )