apache zeppelin что это
Apache Zeppelin
Web-based notebook that enables data-driven,
interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.
Technologies
See more details in Zeppelin supports 20+ different interpreters. LEARN MORE
Deployments
What’s new in
Zeppelin SDK
Not only you can use Zeppelin as interactive notebook, you can also use it as JobServer via Zeppelin SDK (client api & session api)
Spark Interpreter Improved
Spark interpreter provides comparable Python & R user experience like Jupyter Notebook. For the details, click here.
Flink Interpreter Improved
Flink interpreter is refactored, supports Scala, Python & SQL. Flink 1.10 and afterwards (Scala 2.11 & 2.12) are all supported.
For the details, click here.
Yarn Interpreter Mode
You can run interpreter in yarn cluster, e.g. you can run Python interpreter in yarn and R interpreter in yarn.
Inline Configuration
Generic ConfInterpreter provide a way configure interpreter inside each note.
Interpreter Lifecycle Management
Interpreter lifecycle manager automatically terminate interpreter process on idle timeout. So resources are released when they’re not in use. See here for more details.
See more details in 0.10 Release Note
Multi-purpose Notebook
The Notebook is the place for all your needs
Multiple Language Backend
Apache Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Currently Apache Zeppelin supports many interpreters such as Apache Spark, Apache Flink, Python, R, JDBC, Markdown and Shell.
Adding new language-backend is really simple. Learn how to create a new interpreter.
Apache Spark integration
Especially, Apache Zeppelin provides built-in Apache Spark integration. You don’t need to build a separate module, plugin or library for it.
Apache Zeppelin with Spark integration provides
For the further information about Apache Spark in Apache Zeppelin, please see Spark interpreter for Apache Zeppelin.
Data visualization
Some basic charts are already included in Apache Zeppelin. Visualizations are not limited to SparkSQL query, any output from any language backend can be recognized and visualized.
Pivot chart
Apache Zeppelin aggregates values and displays them in pivot chart with simple drag and drop. You can easily create chart with multiple aggregated values including sum, count, average, min, max.
Dynamic forms
Apache Zeppelin can dynamically create some input forms in your notebook.
Collaborate by sharing your Notebook & Paragraph
Your notebook URL can be shared among collaborators. Then Apache Zeppelin will broadcast any changes in realtime, just like the collaboration in Google docs.
Apache Zeppelin provides an URL to display the result only, that page does not include any menus and buttons inside of notebooks. You can easily embed it as an iframe inside of your website in this way. If you want to learn more about this feature, please visit this page.
100% Opensource
Apache Zeppelin is Apache2 Licensed software. Please check out the source repository and how to contribute. Apache Zeppelin has a very active development community. Join to our Mailing list and report issues on Jira Issue tracker.
Общий обзор¶
Открытый веб-блокнот для интерактивной аналитики данных
Apache Zeppelin – это новый многофункциональный веб-блокнот, обеспечивающий считывание, анализ и визуализацию данных, их обмен и взаимодействие с Hadoop и Spark ( Рис.2. ).
Рис. 2. Apache Zeppelin
Интерактивные браузерные блокноты позволяют инженерам данных, аналитикам и ученым в области данных более продуктивно выполнять работу, благодаря совместному использованию кода данных, его разработке, организации и выполнению, а также благодаря визуализации результатов без необходимости обращения к командной строке или к компонентам кластера. Блокноты обеспечивают пользователям не только выполнение задач, но и интерактивную работу с долго выполняющимися потоками операций.
Apache Zeppelin – это новый веб-блокнот, который предоставляет функции поиска, визуализации, совместного использования и функциональное взаимодействие с Apache Spark. В него встроена интеграция со Spark, что избавляет от необходимости создания отдельного модуля, плагина или библиотеки, и это дает следующие преимущества:
Apache Zeppelin поддерживает Python, но при этом концепция интерпретатора блокнота позволяет подключать любой язык/фрейворк обработки данных в Zeppelin. В настоящее время Zeppelin поддерживает множество интерпретаторов, например, такие как Scala, Hive, SparkSQL, Shell и Markdown ( Рис.3. ).
Рис. 3. Интерпретаторы
Некоторые базовые диаграммы уже включены в Apache Zeppelin, но визуализация не ограничивается запросом Spark SQL и любой результат с любого языка может быть распознан и визуализирован ( Рис.4. ).
Рис. 4. Визуализация данных
Apache Zeppelin агрегирует значения и отображает их в сводной диаграмме с простым перемещением drag-and-drop. Можно легко создать диаграмму с несколькими агрегированными значениями, в том числе: сумма, количество, среднее, минимальное, максимальное ( Рис.5. ).
Рис. 5. Сводная диаграмма
Также Apache Zeppelin может динамически создавать некоторые формы ввода в блокноте пользователя ( Рис.6. ).
Рис. 6. Формы ввода в блокноте
Поиск данных, их анализ, отчетность и визуализация являются ключевыми компонентами рабочего процесса в области данных. Zeppelin предоставляет “Modern Data Science Studio” (“Современную научную студию данных”), которая поддерживает Spark и Hive из коробки. Фактически Zeppelin поддерживает несколько языков, которые в свою очередь имеют поддержку растущей экосистемы источников данных. Блокноты Zeppelin позволяют ученым в области данных в реальном времени создавать и выполнять небольшие фрагменты кода.
URL-адресом блокнота можно поделиться между сотрудниками. В таком случае Apache Zeppelin транслирует любые изменения в реальном времени точно так же, как при работе в Google docs. Но данный URL-адрес отображает только результат, страница не содержит никаких меню и кнопок для редактирования. Кроме того, при завершении работы с блокнотом можно создать отчет и при необходимости распечатать его или экспортировать ( Рис.7. ).
Рис. 7. Отчет о работе в Apache Zeppelin
В Arenadata мы считаем, что Spark и Hadoop идеально сочетаются. И что Zeppelin является ключевым компонентом для ускорения решений в области науки о данных.
Apache Zeppelin
Web-based notebook that enables data-driven,
interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.
Technologies
See more details in Zeppelin supports 20+ different interpreters. LEARN MORE
Deployments
What’s new in
Zeppelin SDK
Not only you can use Zeppelin as interactive notebook, you can also use it as JobServer via Zeppelin SDK (client api & session api)
Spark Interpreter Improved
Spark interpreter provides comparable Python & R user experience like Jupyter Notebook. For the details, click here.
Flink Interpreter Improved
Flink interpreter is refactored, supports Scala, Python & SQL. Flink 1.10 and afterwards (Scala 2.11 & 2.12) are all supported.
For the details, click here.
Yarn Interpreter Mode
You can run interpreter in yarn cluster, e.g. you can run Python interpreter in yarn and R interpreter in yarn.
Inline Configuration
Generic ConfInterpreter provide a way configure interpreter inside each note.
Interpreter Lifecycle Management
Interpreter lifecycle manager automatically terminate interpreter process on idle timeout. So resources are released when they’re not in use. See here for more details.
See more details in 0.10 Release Note
Multi-purpose Notebook
The Notebook is the place for all your needs
Multiple Language Backend
Apache Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Currently Apache Zeppelin supports many interpreters such as Apache Spark, Apache Flink, Python, R, JDBC, Markdown and Shell.
Adding new language-backend is really simple. Learn how to create a new interpreter.
Apache Spark integration
Especially, Apache Zeppelin provides built-in Apache Spark integration. You don’t need to build a separate module, plugin or library for it.
Apache Zeppelin with Spark integration provides
For the further information about Apache Spark in Apache Zeppelin, please see Spark interpreter for Apache Zeppelin.
Data visualization
Some basic charts are already included in Apache Zeppelin. Visualizations are not limited to SparkSQL query, any output from any language backend can be recognized and visualized.
Pivot chart
Apache Zeppelin aggregates values and displays them in pivot chart with simple drag and drop. You can easily create chart with multiple aggregated values including sum, count, average, min, max.
Dynamic forms
Apache Zeppelin can dynamically create some input forms in your notebook.
Collaborate by sharing your Notebook & Paragraph
Your notebook URL can be shared among collaborators. Then Apache Zeppelin will broadcast any changes in realtime, just like the collaboration in Google docs.
Apache Zeppelin provides an URL to display the result only, that page does not include any menus and buttons inside of notebooks. You can easily embed it as an iframe inside of your website in this way. If you want to learn more about this feature, please visit this page.
100% Opensource
Apache Zeppelin is Apache2 Licensed software. Please check out the source repository and how to contribute. Apache Zeppelin has a very active development community. Join to our Mailing list and report issues on Jira Issue tracker.
Настраиваем связку Apache Zeppelin + Oracle
Давно ищу удобный инструмент для выполнения ad hoc SQL-запросов в БД Oracle, с возможностью быстрого построения различных типов графиков на полученных данных. Все, что может облегчить оперативное создание отчетов, как говорится «на лету». Совсем недавно наткнулся на вот такой инструмент как Apache Zeppelin. Короткий обзор возможностей в документации на сайте и демо-видео показал, что это штука достаточно интересная и имеет смысл более плотно исследовать ее и настроить доступ из Apache Zeppelin к СУБД Oracle.
Вводная часть
Взрывной рост индустрии Big Data, Machine Learing потребовал новых инструментов и подходов для работы с большими массивами данных. Появились такие экосистемы и программные продукты Big Data как Hadoop, Spark, Storm, Elasticsearch и др… Десятки различных фрэймворков для машинного обучения с предустановленными алгоритмами. Ведущие университеты мира создают множество бесплатных курсов по машинному обучению и работе с Big Data.
Появились также и инструменты, которые решают задачи по визуализации данных. Хотел бы выделить два инструмента: это экосистема языка программирования R, созданная для статистической обработки данных и работы с графикой. И Weka – набор средств визуализации и алгоритмов для интеллектуального анализа данных и решения задач прогнозирования. Кстати, разработки обоих инструментов/языков программирования стартовали в 1993 году и оба из Новой Зеландии :). Ну и конечно, это множество других средств визуализации, которые практически каждая команда, предлагающая уже конечный продукт, делает сама под себя с использованием популярных фрэймворков для визуализации данных: D3.js, JfreeChart, HighCharts.js и другие.
Отдельно хотелось бы выделить направление интерактивных оболочек для работы с большими данным и машинного обучения. Самый известный и популярный инструмент — это продукт Python-сообщества – IPython. Судя по количеству упоминаний (сам я с ним плотно не работал), является стандартом де-факто в среде специалистов по машинному обучению. С 2014 создатель IPython начал новый проект Jupyter Notebook, цель которого создать полностью независимый от языка программирования интерактивный shell. Также, в этом направлении активно работают компании DataBricks, Beaker, которые развивают направление интерактивных shell инструментов для Data Scientist с упором на облака. Кроме Jupyter Notebook, есть и другие аналогичные инструменты, например Spark Notebook.
Итак, Apache Zeppelin – это один из представителей направления интерактивных оболочек для работы с Big Data и машинного обучения.
Работа над созданием Zeppelin была начата в недрах южнокорейской софтверной компании NFLabs в 2012-2013 годах (подробнее история создания от разработчика системы здесь).
Изначально цель была создать пользовательский интерфейс для разнообразных систем SQL over Hadoop, таких как Hive, Presto и Shark etc. Потом стало понятно, что существует потребность в создании более мощного инструмента для Data Scientist для совместной работы на больших проектах, не ограниченных только SQL. Поэтому была реализована встроенная интеграция с Apache Spark фрэймворком и возможность совместной работы в Notebook через WEB.
Возможности Apache Zeppelin:
Установка Apache Zeppelin
Системные требования и инструкция по установке Apache Zeppelin доступны на странице проекта на GitHub или на сайте проекта.
В своей работе я использовал Vagrant + ручную компиляцию из исходных кодов. Вы можете выбрать любой из предложенных способов.
Настройка связки Apache Zeppelin + Oracle
Качаем JDBC драйвер от Oracle (например ojdbc7.jar) по ссылке (требуется регистрация на сайте) и выкладываем драйвер по путям CLASSPATH. В случае Apache Zeppelin выкладываем файл драйвера в корневую директорию (/usr/zeppelin). Для Apache Spark – в SPARK_HOME/lib (теоретически загружать jdbc драйвер можно динамически, с использованием Dependency loader, но добиться видимости классов в SparkContext у меня не получилось).
Попытка № 1
Первая попытка получить доступ к Oracle была предпринята из окружения Apache Spark. С версии Spark 1.3 работу с БД рекомендуется вести через Spark SQL data source API. Указываем url доступа к БД, таблицу/набор данных и jdbc драйвер для соединения к БД. Проверить какие поля доступны для выборки, и загрузить набор данных как таблицу в память в окружении SQLContext с помощью процедуры registerTempTable(), после чего можно делать запросы к источнику данных.
Теперь все готово для выполнения запроса по таблице OBJ
К сожалению, полноценный доступ к данным Oracle в Apache Spark не работает. При попытке выбрать данные с типом данных NUMBER, получаем следующую ошибку:
Данная проблема известна и описана в JIRA проекта Apache Spark: Spark sql jdbc fails for Oracle NUMBER type columns
Пока решения нет, соответственно полноценно, напрямую, работать с данными СУБД Oracle в Apache Spark непросто. Как обходное решение, в СУБД Oracle можно создавать представления, в которых делать конвертацию NUMBER to VARCHAR2 и использовать их для работы из Apache Spark. Но это дополнительные сложности с администрированием, выдачей прав etc.
Попытка № 2
Попробуем получить доступ к СУБД Oracle напрямую, не через Spark. Разработчики придумали систему расширений для этих целей — называется Interpreters. Отдельного плагина для БД Oracle еще нет. Но мы попробуем воспользоваться готовым для Postgresql – ведь это JDBC. Делаем необходимые правки в интерфейсе Zeppelin на закладке Interpreters для psql:
И пробуем выполнить тестовый запрос:
Попробуем визуализацию данных из истории активных сессий:
То же, но с использованием динамической формы для изменения диапазона выбираемых данных:
Можно также попробовать динамически обновляемые в страницы, например статистику твитов аккаунта: Capture Tweets from the Twitter от Gustavo Arjones
Указываем параметры приложения для доступа к своей ленте:
Сам код, который творит магию:
Динамически обновляемая статистика твитов из вашей ленты в отдельном окне:
Возможные варианты использования (дополнительные):
— Генератор отчетов для ad hoc запросов;
— Создание гибко настраиваемых окружений для несложных систем мониторинга и наблюдения за ключевыми показателями ИТ-систем.
Недостатки:
— Пока слабо развито сообщество разработчиков. Количество пишуших код в Apache Zeppelin по сравнению с Jupiter Notebook;
— Набор типов графиков пока маловат, у конкурентов побогаче будет;
— Есть небольшие баги, которых немного, но они не мешают полноценно, без нервотрепки, использовать основной функционал. «It just works».
Apache Zeppelin – интерактивная оболочка для выполнения запросов над Big Data, работы с Machine Learning, последующей визуализации результатов и коллективной разработки.
В связи с ростом объемов данных, новых задач по поиску новых знаний требуют для исследователей удобного инструмента (окружения) для своей работы. Ниша интерактивных оболочек на данный момент одно из перспективных направлений: June 12, 2015, 8 New Big Data Projects To Watch, author: Alex Woodie. Мы наблюдаем интересную тенденцию – это появление гибридных программных комплексов, позволяющих упростить задачи подготовки и анализа больших данных, визуализации и совместной работы для Data Scientist. Удобный интерфейс для визуализации, который предоставляет Apache Zeppelin, также будет полезен администратором и разработчикам БД.
Судя по активности разработчиков по передаче кода в открытый доступ под крыло Apache Foundation в рамках программы Apache Incubator, созданию специализированного портала ZeppelinHub для выкладывания подготовленных Notebook, команда разработчиков планирует активное развитие продукта и выход на более широкую аудиторию.
Русские Блоги
Обширный учебник Zepplin
2019 Unicorn Enterprise Стандарт набора для тяжелых инженеров Python >>>
1. Что такое Цеппелин?
Apache ZeppelinЭто веб-блокнот (похожий на блокнот jupyter), который поддерживает интерактивный анализ данных.
Zeppelin может достичь того, что вам нужно:
Поддержка нескольких языков, по умолчанию Scala (за оболочкой Spark), SparkSQL, Markdown, SQL, Shell, Markdown и Python и т. Д.
Интеграция с Apache Spark
В частности, Apache Zeppelin предоставляет встроенныеApache SparkИнтеграция. Вам не нужно создавать отдельный модуль, плагин или библиотеку для него.
2. Особенности Zeppelin
2.1 Интеграция с Apache Spark
Zeppelin обеспечивает встроенную интеграцию Apache Spark. Вам не нужно создавать модуль, плагин или библиотеку отдельно.
Интеграция Zeppelin Spark обеспечивает:
2.2 Визуализация данных
Некоторые основные диаграммы уже включены в Zeppelin. Визуализация не ограничивается запросами SparkSQL, вывод любого языка в бэкэнде может быть идентифицирован и визуализирован.
Сводная диаграмма
Apache Zeppelin объединяет значения и отображает их в перспективе простым перетаскиванием. Вы можете легко создать диаграмму с несколькими суммарными значениями, включая сумму, количество, среднее, минимальное и максимальное значения.
Динамическая форма
Apache Zeppelin может динамически создавать некоторые формы ввода в блокноте.
Сотрудничайте, делясь своими блокнотами и параграфами
URL-адрес вашей записной книжки может быть распространен среди соавторов. Затем Apache Zeppelin будет воспроизводить любые изменения в режиме реального времени, как и в случае с Google Docs.
релиз
Zeppelin предоставляет URL для отображения только результатов, эта страница не включает меню и кнопки Zeppelin. Таким образом, вы можете легко интегрировать его в качестве iframe на свой сайт.
3. Быстрый старт для Zeppelin
3.1 Установка
Просто упакуйте его в каталог по вашему выбору.
### Запустить Apache Zeppelin
Запустите Apache Zeppelin с менеджером сервиса
Apache Zeppelin может использовать сценарий инициализации в качестве службы для автоматического запуска, используя диспетчер служб, такой как upstart. Это сохраненный пример сценария upstart, поскольку /etc/init/zeppelin.conf Это позволяет использовать такие команды, как следующие, для управления службами.
sudo service zeppelin start
sudo service zeppelin stop
sudo service zeppelin restart
Другие менеджеры сервисов могут использовать методы, аналогичные параметрам, передаваемым upstart скрипту zeppelin-daemon.sh.
bin/zeppelin-daemon.sh upstart
zeppelin.conf
start on (local-filesystems and net-device-up IFACE!=lo)
# Respawn the process on unexpected termination
# respawn the job up to 7 times within a 5 second period.
# If the job exceeds these values, it will be stopped and marked as failed.
# zeppelin was installed in /usr/share/zeppelin in this example
exec bin/zeppelin-daemon.sh upstart
3.2 Конфигурация
3.2.1 Zeppelin Properties
Apache Zeppelin можно настроить в двух местах.
(1) Переменные среды могут быть определены в conf / zeppelin-env.sh
(2) Атрибуты Java могут быть определены в conf / zeppelin-site.xml
3.3 Изучение пользовательского интерфейса Apache Zeppelin
При первом подключении к Zeppelin вы увидите скриншот ниже на главной странице.
При нажатии Import Note При связывании откроется новый диалог. Оттуда вы можете импортировать свои заметки с локального диска или из удаленного места, если вы предоставите URL.
По умолчанию имя импортированного комментария совпадает с исходным комментарием, но вы можете переопределить его, указав новое имя.
ноутбук
что Notebook Меню предлагает почти те же функции, что и раздел управления заметками на главной странице. Из выпадающего меню вы можете:
Создать новую заметку
Настроить
Это меню позволяет получить доступ к настройкам и отображать информацию о Zeppelin. anonymous Если используется конфигурация shiro по умолчанию, имя пользователя устанавливается на. Если вы хотите настроить аутентификацию, см.Широ аутентификация。
Вы можете проверить версию Zeppelin в этом меню.
В этом меню вы можете:
Это меню позволяет сохранить учетные данные источника данных, переданного интерпретатору.
Макет аннотации
пункт
Каждый абзац состоит из двух частей: code section Вы кладете исходный код в result section Где вы можете увидеть результаты выполнения кода.
В правом верхнем углу каждого абзаца есть несколько команд:
Чтобы настроить абзац, просто нажмите значок шестеренки:
Из этого диалогового окна (в порядке убывания):
Обратите внимание на панель инструментов
В верхней части заметки вы можете найти панель инструментов, которая отображает кнопки команд и параметры конфигурации, безопасности и отображения.
Название заметки отображается справа, просто щелкните ее, чтобы отобразить форму ввода и обновить ее.
В середине панели инструментов вы можете найти командную кнопку:
На правой стороне панели инструментов заметки вы можете найти значок конфигурации:
3.4 учебник по Apache Zeppelin
Этот учебник проведет вас через некоторые основные концепции Zeppelin. Мы предполагаем, что вы установили Zeppelin. Если нет, пожалуйста, прочитайте сначалаздесь。
Текущий основной механизм обработки ЦеппелинаApache Spark, Если вы новичок в системе, вы можете сначала понять, как обрабатывать данные, чтобы максимально использовать Zeppelin.
3.4.1 Учебник по локальным файлам
Оптимизация данных
Перед запуском учебника по Zeppelin вам необходимо скачатьbank.zip。
Сначала преобразуйте данные в формате csv в RDD Bank Объект, запустите следующий скрипт. Это также будет использовать filter Функция удаляет заголовок.
val bankText = sc.textFile(«yourPath/bank/bank-full.csv»)
case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer)
// split each line, filter out header (starts with «age»), and map it into Bank case class