Genie — это интегрированная система оркестрации и выполнения больших данных, разработанная Netflix.
Ценность Genie лучше всего описать с точки зрения проблемы, которую он решает.
Инфраструктура больших данных сложна и постоянно развивается.
Потребителям данных (исследователям данных или другим приложениям) приходится преодолевать множество препятствий, чтобы выполнить простой запрос:
То, что работает сегодня, может не работать завтра. Возможно, кластер переехал, двоичные файлы могут быть несовместимы и т. д.
Умножьте эти накладные расходы на количество потребителей данных, и вы получите много потерянного времени (и горя!).
Поставщики инфраструктуры данных сталкиваются с другим набором проблем:
Genie создан, чтобы находиться на границе этих двух миров и упрощать жизнь людей по обе стороны.
Специалист по данным может «потереть волшебную лампу» и просто сказать: «Джинн, запусти запрос «Q», используя движок SparkSQL, к производственным данным». Джинн позаботится обо всех мельчайших деталях. Он динамически собирает необходимые двоичные файлы и конфигурации, выполняет задание, контролирует его, уведомляет пользователя о его завершении и делает выходные данные доступными для немедленного и будущего использования.
Поставщики инфраструктуры больших данных работают с Genie, предоставляя ресурсы для использования (кластеры, двоичные файлы и т. д.) и подключая волшебную логику, о которой пользователю не нужно беспокоиться: в какой кластер следует направить данный запрос? С какой версией Spark следует выполнять данный запрос? Разрешен ли этому пользователю доступ к этим данным? и т. д. Более того, детали каждого задания записываются для последующего аудита или отладки.
Genie изначально разрабатывался как очень гибкий и настраиваемый. Для получения более подробной информации посетите официальную документацию.
Сборки Genie запускаются здесь на Travis CI.
Ветвь | Строить | Покрытие (coveralls.io) |
---|---|---|
мастер (4.2.x) | ||
4.1.х | ||
4.0.х |
genie-app
Автономный сервисный сервер Genie.
genie-agent-app
Автономный исполнитель заданий Genie CLI.
genie-client
Клиент Genie взаимодействует с сервисом через REST API.
genie-web
Основная серверная библиотека может быть переработана для внедрения и переопределения серверных компонентов.
genie-agent
Основную библиотеку агентов можно переоборудовать для внедрения и переопределения компонентов.
genie-common
, genie-common-internal
, genie-common-external
Библиотеки внутренних компонентов, совместно используемые модулями сервера, агента и клиента.
genie-proto
Сообщения Protobuf и определение служб gRPC используются сервером и агентом совместно. Это не общедоступный API, предназначенный для использования другими клиентами.
genie-docs
, genie-demo
Документация и демо-приложение.
genie-test
, genie-test-web
Тестирование классов и утилит, общих для других модулей.
genie-ui
Пользовательский интерфейс JavaScript для поиска и визуализации заданий, кластеров и команд.
genie-swagger
Автоматическая настройка Swagger через Spring Fox. Добавьте к окончательному развертыванию артефакт сервера, чтобы включить его.
Genie публикует в Maven Central и Docker Hub.
Примеры см. в демонстрационном разделе документации. И в раздел настройки для получения более подробных инструкций по настройке Genie.
Клиент Genie Python размещен в другом репозитории.
Подробное объяснение архитектуры Genie, вариантов использования, документации API, демонстраций, руководств по развертыванию и настройке и многого другого можно найти в документации Genie.
Чтобы связаться с разработчиками Genie с вопросами и предложениями, используйте GitHub Issues.