Что такое zeppelin notebook

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

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

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.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

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.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

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.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Dynamic forms

Apache Zeppelin can dynamically create some input forms in your notebook.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin 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.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

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 с кластером Apache Spark в Azure HDInsight

Кластеры HDInsight Spark включают в себя записные книжки Apache Zeppelin. Используйте записные книжки для запуска заданий Apache Spark. Из этой статьи вы узнаете, как использовать записную книжку Zeppelin в кластере HDInsight.

Предварительные требования

Запуск записной книжки Apache Zeppelin

В разделе Обзор кластера Spark выберите Записная книжка Zeppelin в разделе Панели мониторинга кластера. Введите учетные данные администратора для кластера.

Также можно открыть Zeppelin Notebook для своего кластера, открыв следующий URL-адрес в браузере. Замените CLUSTERNAME именем кластера:

Создайте новую записную книжку. На панели заголовка перейдите к записной книжке создать новое примечание.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Введите имя для записной книжки и щелкните Создать заметку.

Убедитесь, что в заголовке записной книжки отображается состояние «Подключено». Оно обозначается зеленой точкой в правом верхнем углу.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

В пустой абзац, созданный по умолчанию в новой записной книжке, вставьте следующий фрагмент кода.

Нажмите клавиши SHIFT + ВВОД или кнопку Воспроизведение для абзаца, чтобы выполнить фрагмент кода. Состояние, которое отображается в правом верхнем углу абзаца, должно изменяться в следующей последовательности: READY (ГОТОВО), PENDING (ОЖИДАЕТ), RUNNING (ВЫПОЛНЯЕТСЯ) и FINISHED (ЗАВЕРШЕНО). Выходные данные отображаются в нижней части того же абзаца. Снимок экрана выглядит следующим образом.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Можно указать заголовок для каждого абзаца. В правом углу абзаца нажмите на значок параметров (звездочка), а затем щелкните Показать заголовок.

Интерпретатор %spark2 не поддерживается в блокнотах Zeppelin во всех версиях HDInsight, а интерпретатор %sh не поддерживается в HDInsight версии 4.0 и выше.

Инструкция %sql в начале сообщает записной книжке, что необходимо использовать интерпретатор Livy Scala.

Щелкните значок линейчатой диаграммы, чтобы изменить режим отображения. Параметры, отображаемые после выбора линейчатой диаграммы, позволяют выбрать ключи и значения. Выходные данные показаны на снимке экрана ниже.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Можно также запустить инструкции Spark SQL с помощью переменных в запросе. В следующем фрагменте кода показано, как определить переменную Temp в запросе с возможными значениями, с которыми необходимо выполнить запрос. При первом выполнении запроса раскрывающийся список автоматически заполняется значениями, указанными для переменной.

Щелкните значок линейчатой диаграммы, чтобы изменить режим отображения. Затем выберите Параметры и внесите следующие изменения.

Группы: Добавьте таржеттемп.

Значения: 1. Удалите date. 2. Добавьте temp_diff. 3. Измените агрегатор с SUM на AVG.

Выходные данные показаны на снимке экрана ниже.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Использование внешних пакетов с записной книжкой

Записная книжка Zeppelin в кластере Apache Spark в HDInsight может использовать внешние, предоставленные сообществом пакеты, которые не включены в кластер. Полный список доступных пакетов можно найти в репозитории Maven. Его также можно получить из других источников. Например, полный список предоставленных сообществом пакетов можно найти в разделе Пакеты Spark.

В этой статье показано, как использовать пакет spark-csv с Jupyter Notebook.

Откройте параметры интерпретатора. В правом верхнем углу щелкните имя вошедшего в систему пользователя и выберите Интерпретатор.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Прокрутите до livy2, а затем выберите Изменить.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Нажмите кнопку Сохранить, а затем OK, чтобы перезапустить интерпретатор Livy.

Вот как можно получить значение указанного выше ключа.

а. Найдите пакет в репозитории Maven. В этой статье мы использовали spark-csv.

b. В репозитории найдите значения для параметров GroupId, ArtifactId и Version.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

c. Объедините три значения, разделив их двоеточием (:).

Место сохранения записных книжек Zeppelin

Записные книжки Zeppelin сохраняются на головных узлах кластера. Поэтому при удалении кластера записные книжки также будут удалены. Если вы хотите сохранить записные книжки для последующего использования в других кластерах, необходимо экспортировать их после выполнения заданий. Чтобы экспортировать записную книжку, щелкните значок Экспорт, как показано на рисунке ниже.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Это действие сохраняет записную книжку в формате JSON в расположение для скачивания.

Использование Shiro для настройки доступа к интерпретаторам Zeppelin в кластерах с Корпоративным пакетом безопасности (ESP)

Определите новую роль, используя существующее имя группы домена. В следующем примере adminGroupName — это группа привилегированных пользователей в AAD. Не используйте в имени группы специальные символы и пробелы. Символы после = предоставляют разрешения для этой роли. * означает, что группа имеет все разрешения.

Управление сеансом Livy

При выполнении первого абзаца кода в записной книжке Zeppelin в кластере HDInsight Spark создается новый сеанс Livy. Этот сеанс будет общим в записных книжках Zeppelin, которые вы создадите позже. Если по какой-либо причине сеанс Livy будет прерван, задания не будут выполняться из записной книжки Zeppelin.

В этом случае перед началом выполнения заданий из записной книжки Zeppelin необходимо сделать следующее.

Перезапустите интерпретатор Livy из записной книжки Zeppelin. Для этого откройте параметры интерпретатора: щелкните имя вошедшего в систему пользователя в правом верхнем углу и нажмите кнопку Интерпретатор.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Прокрутите до livy2, а затем выберите перезапустить.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Запустите ячейку кода из имеющейся записной книжки Zeppelin. Этот код создает новый сеанс Livy в кластере HDInsight.

Общие сведения

Проверка службы

Журнал местоположений

Включение ведения журнала отладки

Перейдите в раздел конфигурации Дополнительно Zeppelin-log4j-Properties log4j_properties_content.

Сохраните изменения и перезапустите службу.

Источник

Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

Все рано или поздно приходят к аналитике за данными. В больших многопользовательских играх (да и синглплеере) без этого уже вообще никуда. Сколько пользователей предпочитают новый режим; где слабые места монетизации; куда смотреть геймдизайнерам, чтобы повысить вовлеченность игроков; и еще миллион вещей — подсчитывается вообще всё. И всё это влияет на решения, которые потом принимают разработчики.

А вот внедряют аналитику все по-разному: кто-то покупает сторонние решения (просто, но негибко), кто-то пишет под себя (долго и дорого), а кто-то пока просто считает несколько базовых метрик силами программистов и не заморачивается.

Поэтому я расскажу об инструменте, который будет полезен для всех. Кто только начинает выстраивать аналитику — сможет «на коленке» создать систему с нуля, а компании с уже готовыми решениями — «бустануть» свой подход.
Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook
Речь пойдет об Apache Zeppelin. Это многофункциональная интерактивная оболочка, которая позволяет выполнять запросы к различным источникам данных, обрабатывать и визуализировать результаты.

Достаточно близкий аналог — Jupyter Notebook, но Zeppelin несколько более заточен под работу с базами данных. Он использует концепцию «интерпретаторов» — плагинов, которые обеспечивают бэкэнд для какого-либо языка и/или БД.

Zeppelin, как и Jupyter, для пользователя выглядит как набор файлов-ноутбуков, состоящий из параграфов, в которых пишутся и исполняются запросы. С помощью встроенных визуализаторов ноутбук с набором запросов легко превратить в полноценный дашборд с данными.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Намеренно не будем касаться вопросов установки и настройки — это есть и в документации на сайте, и в сети можно найти несколько туториалов под разные БД. Цель статьи — рассказать о пользовательской стороне вопроса, интересных применениях инструмента (в том числе не самых очевидных) и преимуществах, которые аналитики могут из него извлечь, вне зависимости от того, каким решением они уже пользуются.

В качестве примеров расскажу, для чего мы используем его в Pixonic (как раз тот кейс, когда в компании уже есть собственная производительная система аналитики).

Итак, пойдем по порядку.

Всеядность Zeppelin

Комбинирование различных источников данных — в рамках одного дашборда
— одно из его ключевых преимуществ. В рамках стандартной сборки включено внушительный набор интерпретаторов (к NoSQL и реляционным базам).

На практике это дает следующее:

Zeppelin + Python/R

Zeppelin — это не только веб-интерфейс для различных баз данных, но и может выступать интерактивной оболочкой для выполнения скриптов на языках программирования. В него входят интерпретаторы для R и Python, потому он вполне может выступать альтернативой привычным RStudio и Jupyter. Да, он предоставляет меньше возможностей, чем специализированные IDE (например, нет автоподстановки), но это компенсируется преимуществами, о которых поговорим ниже.

В связке с тем же Python’ом могущество Zeppelin многократно возрастает: тут тебе и возможность получения данных по API из сторонних сервисов (привет предыдущему пункту), и возможность производить обработку данных помимо обычных запросов к БД, а также автоматизация этих процессов. Zeppelin поддерживает обновление дашбордов по крону без лишних телодвижений (опять же, беглый взгляд на решения коллег показывает, что эту, вроде бы тривиальную задачу, порой приходится решать весьма хитровыдуманными способами). Ну и на сладкое: в нем есть встроенная система контроля версий — примитивная, но достаточная для большинства задач аналитиков.

Мы в компании активно используем Python наряду с AppMetr (внутренняя система аналитики) для проведения сложной обработки данных. Потому, идея попробовать Zeppelin появилась именно применительно к нашим скриптам — мы увидели в этом потенциал упростить ряд рутины, связанной, например, с визуализацией результатов.

Визуализация всего на свете — одним кликом

Zeppelin может отображать выведенные в параграфе данные в виде нескольких базовых визуализаторов, работающих по принципу сводных диаграмм: в интерфейсе выбираются поля, по которым будут строиться оси и как будут агрегироваться выводимые значения. Получившиеся диаграммы кликабельны и позволяют с легкостью посмотреть данные в разных разрезах.

Эта, с виду скромная, функциональность покрывает до 95% задач аналитиков по визуализации результатов. Можно прекратить бесконечный экспорт выгрузок в Excel только для построения графика, и даже забыть такие страшные слова как matplotlib, bokeh и ggplot2 — результаты работы скриптов также превращаются в графики парой кликов.

Впрочем, для более сложных визуализаций названия графических библиотек можно вспомнить снова — Zeppelin имеет встроенную интеграцию с самыми популярными графическими библиотеками для Python и R:

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Совместная работа и настройка интерфейсов

Zeppelin может работать локально и использоваться просто как инструмент аналитика, но если развернуть его на сервере, можно при желании превратить его в корпоративный аналитический сервис с авторизацией через LDAP и настройками доступа. В зависимости от потребностей в аналитике, он может выступать как набором дашбордов по метрикам проекта, так и общим хранилищем скриптов и выгрузок, или, например, пространством для совместной работы аналитиков. Приятный бонус: пропадает необходимость обмениваться какими-то файлами или заводить новый док в Confluence — можно просто скинуть ссылку на дашборд.

В этом аспекте важную роль играет гибкость в настройке интерфейса и возможность генерировать простые формы для ввода значений. Конечно, аналитики чувствуют себя комфортно при виде SQL запросов и коде на R, но вот неподготовленных юзеров это может вгонять в ступор. Поэтому в дашборде Zeppelin можно скрыть код (что, например, проблема для Jupyter’а), сделать поля для ввода дат и других меняющихся параметров и отдать заказчику опрятную и понятную форму.

В нашей компании многие процессы завязаны на аналитику, поэтому разным отделам периодически нужны какие-то специфические выгрузки, например пересчитать балансную таблицу по свежим данным. Для таких вещей у нас давно написаны скрипты, но их еще должен кто-то запускать. А вы пробовали когда-нибудь научить пользоваться Jupyter’ом 20 геймдизайнеров? В итоге мы элегантно решили эту проблему, переложив скрипты в Zeppelin, где, например, ГД могут получить нужные им данные, просто нажав одну кнопку. Или не одну:

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Что очень важно в этом моменте — так это то, что вся подготовка интерфейсов и настройка происходит исключительно силами самих аналитиков, без привлечения программистов (или, упаси боже, UX-ров).

Преимущества параллельных процессов

Zeppelin работает в несколько процессов, из чего вытекает интересный бонус — он позволяет запускать отдельный инстанс Python’а как для каждого ноутбука, так и для каждого юзера. Таким образом, без хитрых настроек можно запускать несколько объемных скриптов обработки параллельно — просто делая это в разных ноутбуках, и продолжать работу не дожидаясь завершения. Это работает и в случае локальной копии, а при разворачивании на сервере — так и вообще можно вынести часть вычислений с локальных компьютеров, выполняя их на сервере.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Встраивание параграфов в сайты

Если у вас развернут Zeppelin на сервере, то можно получить ссылку на любой из ваших параграфов (с результатами запроса или графиком) и опубликовать его как iframe на сайте (это делается очень просто, на сайте есть туториал). В практике аналитиков нечасто нужно публиковать какие-то результаты на внешних ресурсах, но это может быть очень удобно для добавления визуализаторов во внутренних сервисах (в том же Confluence). Так можно создавать отчеты, в которых есть интерактивные формы и визуализаторы прямо в тексте.

Self-describing reports

Поддержка markdown позволяет добавлять в дашборды, помимо графиков и таблиц, параграфы с форматированным текстом. В результате можно делать наглядные отчеты с описаниями, где пользователь сразу может посмотреть данные по какой-то проблеме, увидеть это все на графиках и прочитать интерпретацию результатов от аналитиков. В отличии от Jupyter’а, в котором также есть поддержка markdown, в Zeppelin делать интерактивные формы и визуализировать результаты получается намного быстрее, а результат получается более аккуратным и доступным для конечного пользователя, что немаловажно.

Таким образом, это быстрая и наглядная альтернатива обычным исследованиям аналитиков. Как правило, работа аналитиков строится так: аналитики получают задачу изучить какой-то аспект игры. Они готовят данные, проверяют гипотезы, визуализируют подтверждающие результаты, скажем, диаграммами и пишут отчет (например, в confluence). Это правильный, но довольно кропотливый процесс. В нашем же случае можно не тратя лишнего времени набросать ноутбук с этими самыми выгрузками и скриптами, тут же проиллюстрировать результаты графиками, а в соседних параграфах описать свои выводы:

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Конечно, Zeppelin есть за что поругать, он все еще не всегда стабильно работает (все же это опенсорс), веб-интерфейс кушает много оперативной памяти, кому-то может не хватать функций полноценных IDE. Но уже есть ряд интересных юзкейсов, где он может быть полезен — потому он однозначно заслуживает внимания аналитиков (ну и, конечно, чем больше будет коммьюнити, тем лучше может он стать в перспективе).

Для небольших компаний он может стать основным инструментом, так как позволяет надстроить полноценную систему аналитики над базой данных. Для более крупных компаний с уже сложившимся инструментарием аналитики — полезным дополнением, который не заменит основную систему, но даст несколько полезных преимуществ.

Источник

Apache Zeppelin что это, установка, настройка, анализ данных

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Оглавление:

1. Что такое Apache Zeppelin.

2. Установка и настройка Apache Zeppelin.

3. Apache Zeppelin настройка интерпретатора Hive.

4. Apache Zeppelin настройка интерпретатора Spark.

5. Анализ данных в Apache Zeppelin (Hive).

6. Анализ данных в Apache Zeppelin (Spark).

1. Что такое Apache Zeppelin.

Обща концепция Apache Zeppelin похожа на Jupyter Notebook, где каждый проект представляет собой файл-ноутбук, состоящий из параграфов. Главной особенностью Zeppelin является концепция интерпретаторов, с помощью которых можно настроить параметры подключения к источникам данных или конфигурацию языка программирования. Так же очень полезна такая штука, как интеграция Zeppelin со Spark и наличие интерпретатора для модуля PySpark.

Итак, приступим к установке и настройке.

2. Установка и настройка Apache Zeppelin.

Скачаем Apache Zeppelin отсюда, в результате будет скачан архив zeppelin-0.8.2-bin-all.tgz. Далее распакуем архив и скопируем содержимое полученного каталога по следующему пути /usr/local/zeppelin-0.8.2/

Если вы дочитали до этой статьи, то уже знаете, как разархивировать и перемещать каталоги в Линукс, если нет, ознакомьтесь с более ранними статьями.

Теперь можно приступить к настройке, начнем с файла zeppelin-env.sh. Сначала нужно создать этот файл в каталоге установки Zeppelin (у меня /usr/local/zeppelin-0.8.2/conf) из существующего шаблона (template) с помощью команды sudo cp zeppelin-env.sh.template zeppelin-env.sh.

Открыть файл для редактирования:

/usr/local/zeppelin-0.8.2/conf$ sudo gedit zeppelin-env.sh

Теперь нужно раскомментировать или создать (если их нет) следующие параметры:

export PYSPARK_PYTHON=/usr/bin/python3 каталог, где установлен python, в ubuntu по умолчанию в этом каталоге.

Теперь создаем из шаблона и редактируем файл zeppelin-site.xml

В этом файле меняем следующие параметры:

Запускаем сервер с правами администратора: sudo /usr/local/zeppelin-0.8.2/bin/zeppelin-daemon.sh start

Все готово, запускаем браузер, набираем в адресной строке http://IP-адрес:8090/

Если все удачно, видим следующую картинку

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

3. Apache Zeppelin настройка интерпретатора Hive.

Для работы с различными источниками данных и запуска скриптов в Apache Zeppelin используются интерпретаторы. Так как у нас уже есть настроенное хранилище Hive, первым делом настроим данный интерпретатор.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Для этого в веб-интерфейсе Zeppelin необходимо открыть выпадающее меню в верхнем правом углу, где указано имя текущего пользователя (по умолчанию Anonimous). По клику появится выпадающее меню, в котором выбираем Interpreter. В результате появится список стандартных интерпретаторов.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Переменные заполнены по умолчанию для Postgre, поэтому внесем изменения в ряд переменных.

Переменная default.driver необходимо установить значение org.apache.hive.jdbc.HiveDriver

Переменная default.url установить значение jdbc:hive2://Master:10003/default;transportMode=http;httpPath=cliservice;

Эти значения зависят от настроек вашего Hive-сервера.

Переменная default.user необходимо установить значение имя пользователя, настроенного для hive в файле hive-site.xml.

Далее необходимо настроить подключаемые зависимости Dependencies, смотрим рисунок.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Здесь нас интересует поле artifact, его значения представлены также на рисунке. Это подключаемые библиотеки для hive (org.apache.hive:hive-jdbc:0.14.0) и для hadoop (org.apache.hadoop:hadoop-common:2.6.0). Следует отметить, что здесь можно указать путь к требуемому файлу, далее для MySQL мы рассмотрим данную возможность.

На этом настройка завершена, необходимо нажать кнопку SAVE, после чего, если нет ошибок, интерпретатор будет доступен в параграфах notebook.

4. Apache Zeppelin настройка интерпретатора Spark.

Для настройки интерпретатора в списке (смотрите предыдущий раздел) найти Spark и кликнуть по кнопке Edit в правом верхнем углу, после чего поля с параметрами станут доступны для редактирования.

Для нас важны следующие переменные:

На этом все, нажимаем на кнопку Save, и можно приступать к работе.

5. Анализ данных в Apache Zeppelin (Hive).

Итак, у нас все готово к работе: данные в Hive загружены, Hive-сервер и Hadoop (HDFS) на мастере запущены, Spark запущен, Zeppelin тоже работает.

Создаем новый Notebook в Zeppelin. Вкладка Notebook->Create new note.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

В открывшемся модальном окне указать имя новой записной книжки и интерпретатор по умолчанию, в нашем случае настроенный ранее jdbc (последнее не обязательно, так как в каждом параграфе указываем в начале интерпретатор). Нажимаем кнопку CREATE и оказываемся в новой записной книжке с первым параграфом. В правом верхнем углу каждого параграфа имеется небольшая панель управления, через которую мы можем запускать содержимое параграфа (треугольник или Shift+Enter) или изменять интерфейс.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

В параграфе пишем наш первый запрос к базе: show tables, нажимаем треугольник в правом верхнем углу (Shift+Enter) и видим список таблиц в нашей базе данных.

Для лучшего понимания параграфов лучше напрямую указывать интерпретатор, в нашем случае это будет выглядеть в параграфе так:

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Теперь можно приступить к выполнению запросов к данным в таблице. Если вы не знаете SQL хотя бы на начальном уровне, делать вам тут нечего, бегом учить азы языка!

Запросы могут выдавать либо множество записей, либо количество записей и умный Zeppelin оформит их для вас должным образом.

Если вы хотите получить записи (например SELECT * FROM table), то он выдаст результат в виде таблицы. Тут я не вижу никаких трудностей, если есть вопросы, спрашивайте в группе Вконтакте.

Для анализа данных нам важны количественные характеристики каких либо событий, например, количество сообщений в день, содержащих какое-то слово или количество всех сообщений от каждого источника. Напомню, что на странице размещено описание моей таблицы и ее дамп.

Для получения количества новостей от каждого новостного агентства необходимо выполнить следующий запрос в новом или в том же параграфе:

select agency, count(*) as cnt from mynews group by agency order by cnt

Результат получаем в виде таблицы, но нам нужна столбиковая диаграмма, поэтому в появившемся меню интерфейса вывода жмем на Bar Chart, вторая кнопка слева и видим чудо!

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Вы должны получить на выходе что-то похожее на то, что есть на рисунке. Если ничего нет, или график не очень, нужно кликнуть по вкладке Settings и настроить значения по осям с помощью drug-n-drop.

Теперь вы готовы для выполнения других запросов, если есть вопросы, пишите в группу Вконтакте.

6. Анализ данных в Apache Zeppelin (Spark).

В предыдущем разделе мы построили красивый график статистики по информационным источникам. Если же выполнить запрос по выборке количества сообщений, содержащих какое-либо слово, мы натолкнемся на некоторые ограничения, связанные с SQL (график увидим ниже). Запрос выглядит так:

Дело в том, что на графике будут отражены только те даты, где встречалось заданное слово (в примере Aramco)

Нам же зачастую для подсчета статистики важны и даты с нулевыми значениями, вот тут нам на помощь приходит PySpark!

Приступим. В разделе 4 мы настроили интерпретатор Spark, наш скрипт можно выполнять в нем без указания интерпретатора. Однако нам нужно сравнивать результаты с SQL, поэтому создадим новый параграф в уже имеющемся блокноте Hive и укажем необходимый интерпретатор %spark.pyspark. По умолчанию интерпретаторы уже подключены к записной книжке, но на всякий случай упомяну, что их можно подключить вручную во вкладке Interpreter Bindibg в правом верхнем углу книжки, а не параграфа! Подключенные интерпретаторы подсвечены неким бирюзовым цветом, да ладно, голубоватым! Смотрим рисунок.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Если интерпретатор Spark в нужном цвете, все готово, можно продолжать.

Теперь все готово для преобразования данных, полученных из таблицы Hive. Так как мы собираемся строить график, установим библиотеку matplotlib в консоли ОС с помощью pip.

Воспользуемся первым вариантом:

После этого мы можем работать с данными как с обычным кортежем.

Весь скрипт в скриншот не помещается, поэтому разбил на два: чтение данных и дополнение нулевых дат и построение графика.

Чтение данных и дополнение нулевых дат:

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

Жмем треугольник в правом верхнем углу параграфа, ждем продолжительное время при первом запуске, и наблюдаем чудесные графики, в примере приведены для сравнения matplotlib с дополнением нулевых дат и стандартный вывод Zeppelin для запроса к Hive.

Что такое zeppelin notebook. Смотреть фото Что такое zeppelin notebook. Смотреть картинку Что такое zeppelin notebook. Картинка про Что такое zeppelin notebook. Фото Что такое zeppelin notebook

График не такой красивый, но зато более информативный, да и в результате мы имеем два кортежа с датами и соответствующими им частотами. Что делать дальше с этими данными, решать вам.

Если кому-то надо, могу скидывать дампы базы в CSV-формате на яндекс диск или сюда, кому надо это, пишите в группу Вконтакте

Комментарии

Комментировать могуть только зарегистрированные пользователи

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *