Zeppelin
Обзор
Zeppelin — это интерактивный web-блокнот (notebook), предназначенный для решения следующих задач при работе с Big Data:
-
Получение данных из различных источников. Благодаря механизму интерпретаторов (Interpreter), Zeppelin совместим фактически с любым языком программирования или платформой обработки данных.
-
Визуализация и аналитика данных. Web-интерфейс Zeppelin поддерживает множество способов визуализации результатов выполнения кода: таблицы, гистограммы (bar chart), круговые диаграммы (pie chart), линейные диаграммы (line chart), диаграммы рассеяния (scatter chart). Для добавления полей ввода можно использовать динамические формы. Кроме этого, Zeppelin позволяет добавлять html, таблицы и графики непосредственно в поля вывода. Эти и иные функции Zeppelin помогают специалистам в области данных (data scientists) получать исчерпывающую информацию для аналитики.
-
Совместная работа с данными. Zeppelin-заметки (Note) имеют собственный URL, который можно предоставить пользователям. Любые изменения в заметках отслеживаются в режиме реального времени.
Архитектура
Верхнеуровневая архитектурная схема Zeppelin представлена ниже.
Остановимся на основных моментах схемы:
-
Пользователи подключаются к Zeppelin, используя одну из систем аутентификации. Например, Nginx, Apache Shiro и так далее.
-
Авторизованные пользователи могут работать с Zeppelin через web-интерфейс либо напрямую с Zeppelin server, используя доступные REST API.
-
Заметки (Note), создаваемые пользователями, могут храниться в различных системах. Среди них: Git, S3, MongoDB, ZeppelinHub.
-
Ключевую роль в Zeppelin играют интерпретаторы (Interpreter). Они отвечают за использование различных языков программирования и backend-систем: Spark, Python, JDBC, SQL и так далее. Интерпретаторы взаимодействуют с Zeppelin Server через Apache Thrift.
-
По умолчанию Zeppelin использует центральный Maven-репозиторий для разрешения зависимостей и загрузки библиотек, необходимых для интерпретаторов. Также существует возможность загрузки библиотек из локальной файловой системы и внешних источников. Дополнительная информация о разрешении зависимостей доступна в документации Zeppelin.
Интерпретаторы (Interpreter)
Интерпретатор (Interpreter) в Zeppelin — это плагин, который позволяет использовать определенный язык программирования или backend-платформу для извлечения и анализа данных. Например, интерпретатор %sh
предназначен для запуска shell-команд, интерпретатор %jdbc
— для jdbc-запросов и так далее.
Каждый интерпретатор входит в определенную группу. Интерпретаторы из одной группы запускаются в рамках одного JVM-процесса. Таким образом, группа — это средство запуска и остановки интерпретаторов. Каждая группа может включать несколько интерпретаторов, но один интерпретатор всегда принадлежит только одной группе. Например, группа интерпретаторов Spark состоит из таких интерпретаторов, как %spark
, %sql
, %pyspark
, %ipyspark
, %r
, а для разрешения зависимостей использует %dep
. Интерпретаторы, входящие в одну группу, могут обращаться друг к другу.
Список доступных community-интерпретаторов можно найти в документации Zeppelin. Фактически они представляют собой группы интерпретаторов. Некоторые из групп включают один интерпретатор, некоторые — несколько. Новый интерпретатор можно добавить в одну из существующих групп. Кроме этого, существует несколько сторонних (3rd party) интерпреторов — они также могут быть загружены в Zeppelin. Наконец, есть возможность создать собственный интерпретор, не входящий ни в одну из существующих групп.
В таблице ниже описаны основные действия, применимые к интерпретаторам Zeppelin.
Действие | Пример/Документация |
---|---|
Добавление нового интерпретатора в существующую группу |
|
Создание нового интерпретатора |
|
Установка стороннего (3rd party) интерпретатора |
Заметки (Note) и параграфы (Paragraph)
Заметка (Note) в Zeppelin — это набор фрагментов кода (code snippets), написанных на языках программирования, которые поддерживаются интерпретаторами, связанными с данной заметкой. У каждой заметки есть URL-адрес, которым можно поделиться с другими пользователями.
Одна заметка может состоять из нескольких Параграфов (Paragraph). Эти параграфы могут быть как запросами к различным backend-системам, так и пояснительными текстами, построенными с помощью html, таблиц и графиков. Каждый параграф включает два раздела: программный код и результат его выполнения. Любой из этих разделов может быть скрыт.
Веб-интерфейс Zeppelin поддерживает несколько режимов отображения заметок, включая полное сокрытие программного кода.
ПРИМЕЧАНИЕ
Для получения дополнительной информации о заметках и параграфах можно обратиться к документации Zeppelin.
|