- Quick Start
- Installation
- Downloading Binary Package
- Building from Source
- 1. Clone Apache Zeppelin repository
- 2. Build source with options
- Starting Apache Zeppelin with Command Line
- Start Zeppelin
- Stop Zeppelin
- (Optional) Start Apache Zeppelin with a service manager
- What is the next?
- Install
- Requirements
- Downloading Binary Package
- Building Zeppelin from source
- Starting Apache Zeppelin
- Starting Apache Zeppelin from the Command Line
- Stopping Zeppelin
- Start Apache Zeppelin with a service manager
- Next Steps
- Install
- Requirements
- Downloading Binary Package
- Building Zeppelin from source
- Starting Apache Zeppelin
- Starting Apache Zeppelin from the Command Line
- Stopping Zeppelin
- Start Apache Zeppelin with a service manager
- Next Steps
- Apache Zeppelin что это, установка, настройка, анализ данных
- Оглавление:
- 1. Что такое Apache Zeppelin.
- 2. Установка и настройка Apache Zeppelin.
- 3. Apache Zeppelin настройка интерпретатора Hive.
- 4. Apache Zeppelin настройка интерпретатора Spark.
- 5. Анализ данных в Apache Zeppelin (Hive).
- 6. Анализ данных в Apache Zeppelin (Spark).
- Комментарии
Quick Start
Welcome to your first trial to explore Apache Zeppelin! This page will help you to get started and here is the list of topics covered.
Installation
Apache Zeppelin officially supports and is tested on next environments.
Name | Value |
---|---|
Oracle JDK | 1.7 (set JAVA_HOME ) |
OS | Mac OSX Ubuntu 14.X CentOS 6.X Windows 7 Pro SP1 |
There are two options to install Apache Zeppelin on your machine. One is downloading pre-built binary package from the archive. You can download not only the latest stable version but also the older one if you need. The other option is building from the source. Although it can be unstable somehow since it is on development status, you can explore newly added feature and change it as you want.
Downloading Binary Package
If you want to install Apache Zeppelin with a stable binary package, please visit Apache Zeppelin download Page.
If you have downloaded netinst binary, install additional interpreters before you start Zeppelin. Or simply run ./bin/install-interpreter.sh —all .
Building from Source
If you want to build from the source, the software below needs to be installed on your system.
Name | Value |
---|---|
Git | |
Maven | 3.1.x or higher |
If you don’t have it installed yet, please check Before Build section and follow step by step instructions from there.
1. Clone Apache Zeppelin repository
2. Build source with options
Each interpreters requires different build options. For the further information about options, please see Build section.
Here are some examples with several options
For the further information about building with source, please see README.md in Zeppelin repository.
Starting Apache Zeppelin with Command Line
Start Zeppelin
If you are using Windows
After successful start, visit http://localhost:8080 with your web browser.
Stop Zeppelin
(Optional) Start Apache Zeppelin with a service manager
Note : The below description was written based on Ubuntu Linux.
Apache Zeppelin can be auto started as a service with an init script, such as services managed by upstart.
The following is an example of upstart script to be saved as /etc/init/zeppelin.conf This also allows the service to be managed with commands such as
Other service managers could use a similar approach with the upstart argument passed to the zeppelin-daemon.sh script.
zeppelin.conf
What is the next?
Congratulation on your successful Apache Zeppelin installation! Here are two next steps you might need.
Install
Welcome to Apache Zeppelin! On this page are instructions to help you get started.
Requirements
Apache Zeppelin officially supports and is tested on the following environments:
Name | Value |
---|---|
Oracle JDK | 1.7 (set JAVA_HOME ) |
OS | Mac OSX Ubuntu 14.X CentOS 6.X Windows 7 Pro SP1 |
Downloading Binary Package
Two binary packages are available on the download page. Only difference between these two binaries is interpreters are included in the package file.
- all interpreter package: unpack it in a directory of your choice and you’re ready to go.
- net-install interpreter package: unpack and follow install additional interpreters to install interpreters. If you’re unsure, just run ./bin/install-interpreter.sh —all and install all interpreters.
Building Zeppelin from source
follow the instructions How to Build, If you want to build from source instead of using binary package.
Starting Apache Zeppelin
Starting Apache Zeppelin from the Command Line
On all unix like platforms:
If you are on Windows:
After Zeppelin has started successfully, go to http://localhost:8080 with your web browser.
Stopping Zeppelin
Start Apache Zeppelin with a service manager
Note : The below description was written based on Ubuntu.
Apache Zeppelin can be auto-started as a service with an init script, using a service manager like upstart.
This is an example upstart script saved as /etc/init/zeppelin.conf This allows the service to be managed with commands such as
Other service managers could use a similar approach with the upstart argument passed to the zeppelin-daemon.sh script.
zeppelin.conf
Next Steps
Congratulations, you have successfully installed Apache Zeppelin! Here are few steps you might find useful:
Install
Welcome to Apache Zeppelin! On this page are instructions to help you get started.
Requirements
Apache Zeppelin officially supports and is tested on the following environments:
Name | Value |
---|---|
OpenJDK or Oracle JDK | 1.8 (151+) (set JAVA_HOME ) |
OS | Mac OSX Ubuntu 16.X |
Downloading Binary Package
Two binary packages are available on the download page. Only difference between these two binaries is interpreters are included in the package file.
- all interpreter package: unpack it in a directory of your choice and you’re ready to go.
- net-install interpreter package: unpack and follow install additional interpreters to install interpreters. If you’re unsure, just run ./bin/install-interpreter.sh —all and install all interpreters.
Building Zeppelin from source
Follow the instructions How to Build, If you want to build from source instead of using binary package.
Starting Apache Zeppelin
Starting Apache Zeppelin from the Command Line
On all unix like platforms:
After Zeppelin has started successfully, go to http://localhost:8080 with your web browser.
Stopping Zeppelin
Start Apache Zeppelin with a service manager
Note : The below description was written based on Ubuntu.
Apache Zeppelin can be auto-started as a service with an init script, using a service manager like upstart.
This is an example upstart script saved as /etc/init/zeppelin.conf This allows the service to be managed with commands such as
Other service managers could use a similar approach with the upstart argument passed to the zeppelin-daemon.sh script.
zeppelin.conf
Next Steps
Congratulations, you have successfully installed Apache Zeppelin! Here are few steps you might find useful:
Apache Zeppelin что это, установка, настройка, анализ данных
Оглавление:
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 — это интерактивная среда с web-интерфейсом, позволяющая взаимодействовать с различными источниками данных, обрабатывать эти данные с помощью языков R и Python, а так же визуализировать результаты анализа.
Обща концепция Apache Zeppelin похожа на Jupyter Notebook, где каждый проект представляет собой файл-ноутбук, состоящий из параграфов. Главной особенностью Zeppelin является концепция интерпретаторов, с помощью которых можно настроить параметры подключения к источникам данных или конфигурацию языка программирования. Так же очень полезна такая штука, как интеграция Zeppelin со Spark и наличие интерпретатора для модуля PySpark.
Самое главное достоинство Apache Zeppelin — простая система визуализации результатов с помощью встроенных инструментов, поэтому не надо париться с matplotlib, например. Визуализаторы настраиваемые, что позволяет по-разному представлять результаты.
Итак, приступим к установке и настройке.
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 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 — путь к jvm/jdk.
export MASTER=spark://master:7077 — имя и порт spark-мастера. Вместо имени (в примере master) может быть IP-адрес.
export SPARK_HOME=/usr/local/spark-2.4.4 — каталог, где установлен spark.
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.9.1/etc/hadoop — каталог, где установлен hadoop.
export PYSPARK_PYTHON=/usr/bin/python3 каталог, где установлен python, в ubuntu по умолчанию в этом каталоге.
Теперь создаем из шаблона и редактируем файл zeppelin-site.xml
В этом файле меняем следующие параметры:
zeppelin.server.addr — значение (value) имя или IP-адрес машины, где установлен Zeppelin.
zeppelin.server.port — порт web-сервера, у меня 8090.
Запускаем сервер с правами администратора: sudo /usr/local/zeppelin-0.8.2/bin/zeppelin-daemon.sh start
Все готово, запускаем браузер, набираем в адресной строке http://IP-адрес:8090/
Если все удачно, видим следующую картинку
3. Apache Zeppelin настройка интерпретатора Hive.
Для работы с различными источниками данных и запуска скриптов в Apache Zeppelin используются интерпретаторы. Так как у нас уже есть настроенное хранилище Hive, первым делом настроим данный интерпретатор.
Для этого в веб-интерфейсе Zeppelin необходимо открыть выпадающее меню в верхнем правом углу, где указано имя текущего пользователя (по умолчанию Anonimous). По клику появится выпадающее меню, в котором выбираем Interpreter. В результате появится список стандартных интерпретаторов.
Для работы с SQL-базами данных, для которых требуется jdbc-драйвер, внезапно используется интерпретатор jdbc. Находим его и кликаем по кнопке EDIT справа, как показано на рисунке. В результате поля настроек становятся доступны для редактирования. Самая первая группа параметров представлена в виде имя переменной (name) — значение (value), есть также возможность удалить переменную (крестик в поле action). Ну и внизу можно создать новую переменную (кнопка с плюсиком).
Переменные заполнены по умолчанию для Postgre, поэтому внесем изменения в ряд переменных.
Переменная default.driver необходимо установить значение org.apache.hive.jdbc.HiveDriver
Переменная default.url установить значение jdbc:hive2://Master:10003/default;transportMode=http;httpPath=cliservice;
Эти значения зависят от настроек вашего Hive-сервера.
Master:10003 — имя(или IP-адрес) машины, где запущен hive-thrift сервер и порт (у меня 1003, файл hive-site.xml).
default — имя базы данных hive, к которой подключаемся.
transportMode=http — режим взаимодействия с сервером (у меня http, файл hive-site.xml).
httpPath=cliservice — режим взаимодействия через http (у меня cliservice, файл hive-site.xml).
Переменная default.user необходимо установить значение имя пользователя, настроенного для hive в файле hive-site.xml.
Далее необходимо настроить подключаемые зависимости Dependencies, смотрим рисунок.
Здесь нас интересует поле 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 в правом верхнем углу, после чего поля с параметрами станут доступны для редактирования.
Для нас важны следующие переменные:
master — установить значение spark://master:7077. Вместо имени может быть IP-адрес мастера Spark.
zeppelin.pyspark.python — указать каталог установки Python нужной вам версии. У меня это /usr/bin/python3.
На этом все, нажимаем на кнопку Save, и можно приступать к работе.
5. Анализ данных в Apache Zeppelin (Hive).
Итак, у нас все готово к работе: данные в Hive загружены, Hive-сервер и Hadoop (HDFS) на мастере запущены, Spark запущен, Zeppelin тоже работает.
Создаем новый Notebook в Zeppelin. Вкладка Notebook->Create new note.
В открывшемся модальном окне указать имя новой записной книжки и интерпретатор по умолчанию, в нашем случае настроенный ранее jdbc (последнее не обязательно, так как в каждом параграфе указываем в начале интерпретатор). Нажимаем кнопку CREATE и оказываемся в новой записной книжке с первым параграфом. В правом верхнем углу каждого параграфа имеется небольшая панель управления, через которую мы можем запускать содержимое параграфа (треугольник или Shift+Enter) или изменять интерфейс.
В параграфе пишем наш первый запрос к базе: show tables, нажимаем треугольник в правом верхнем углу (Shift+Enter) и видим список таблиц в нашей базе данных.
Для лучшего понимания параграфов лучше напрямую указывать интерпретатор, в нашем случае это будет выглядеть в параграфе так:
Теперь можно приступить к выполнению запросов к данным в таблице. Если вы не знаете SQL хотя бы на начальном уровне, делать вам тут нечего, бегом учить азы языка!
Запросы могут выдавать либо множество записей, либо количество записей и умный Zeppelin оформит их для вас должным образом.
Если вы хотите получить записи (например SELECT * FROM table), то он выдаст результат в виде таблицы. Тут я не вижу никаких трудностей, если есть вопросы, спрашивайте в группе Вконтакте.
Для анализа данных нам важны количественные характеристики каких либо событий, например, количество сообщений в день, содержащих какое-то слово или количество всех сообщений от каждого источника. Напомню, что на странице размещено описание моей таблицы и ее дамп.
Для получения количества новостей от каждого новостного агентства необходимо выполнить следующий запрос в новом или в том же параграфе:
select agency, count(*) as cnt from mynews group by agency order by cnt
Результат получаем в виде таблицы, но нам нужна столбиковая диаграмма, поэтому в появившемся меню интерфейса вывода жмем на Bar Chart, вторая кнопка слева и видим чудо!
Вы должны получить на выходе что-то похожее на то, что есть на рисунке. Если ничего нет, или график не очень, нужно кликнуть по вкладке Settings и настроить значения по осям с помощью drug-n-drop.
По оси Х(keys) — то, что считаем, по оси Y(values) — значения счета.
Теперь вы готовы для выполнения других запросов, если есть вопросы, пишите в группу Вконтакте.
6. Анализ данных в Apache Zeppelin (Spark).
В предыдущем разделе мы построили красивый график статистики по информационным источникам. Если же выполнить запрос по выборке количества сообщений, содержащих какое-либо слово, мы натолкнемся на некоторые ограничения, связанные с SQL (график увидим ниже). Запрос выглядит так:
SELECT DATE(time_new) as dt , count (*) FROM mynews WHERE text like ‘%Aramco%’ GROUP BY DATE(time_new) order by dt
Дело в том, что на графике будут отражены только те даты, где встречалось заданное слово (в примере Aramco)
Нам же зачастую для подсчета статистики важны и даты с нулевыми значениями, вот тут нам на помощь приходит PySpark!
PySpark — это библиотека для языка Python, позволяющая производить распределенную обработку с использованием Spark. Для понимания библиотеки необходимо изучить ее особенности с помощью дополнительной литературы, например «Изучаем Spark». Сам я ознакомился только с азами, но этого мне хватило для решения первой задачи: дополнить массив данных, полученный с помощью SQL, нулевыми интервалами. Хотя для этого мне понадобился только Python, так как обработка осуществлялась в основном локально.
Приступим. В разделе 4 мы настроили интерпретатор Spark, наш скрипт можно выполнять в нем без указания интерпретатора. Однако нам нужно сравнивать результаты с SQL, поэтому создадим новый параграф в уже имеющемся блокноте Hive и укажем необходимый интерпретатор %spark.pyspark. По умолчанию интерпретаторы уже подключены к записной книжке, но на всякий случай упомяну, что их можно подключить вручную во вкладке Interpreter Bindibg в правом верхнем углу книжки, а не параграфа! Подключенные интерпретаторы подсвечены неким бирюзовым цветом, да ладно, голубоватым! Смотрим рисунок.
Если интерпретатор Spark в нужном цвете, все готово, можно продолжать.
Теперь все готово для преобразования данных, полученных из таблицы Hive. Так как мы собираемся строить график, установим библиотеку matplotlib в консоли ОС с помощью pip.
Из распределенных задач у нас будет только одна — запрос к таблице Hive, это можно делать либо через Spark.sql, либо через Spark.HiveContext.
Воспользуемся первым вариантом:
SDF1 = spark.sql(«SELECT DATE(time_new) as dt , count (*) FROM mynews WHERE text like ‘%Aramco%’ GROUP BY DATE(time_new) order by dt»)
В результате получаем особый тип распределенных данных — DataFrame, он пока хранится распределённо, чтобы его собрать, используется функция collect().
После этого мы можем работать с данными как с обычным кортежем.
Весь скрипт в скриншот не помещается, поэтому разбил на два: чтение данных и дополнение нулевых дат и построение графика.
Чтение данных и дополнение нулевых дат:
Жмем треугольник в правом верхнем углу параграфа, ждем продолжительное время при первом запуске, и наблюдаем чудесные графики, в примере приведены для сравнения matplotlib с дополнением нулевых дат и стандартный вывод Zeppelin для запроса к Hive.
График не такой красивый, но зато более информативный, да и в результате мы имеем два кортежа с датами и соответствующими им частотами. Что делать дальше с этими данными, решать вам.
Если кому-то надо, могу скидывать дампы базы в CSV-формате на яндекс диск или сюда, кому надо это, пишите в группу Вконтакте
Комментарии
Комментировать могуть только зарегистрированные пользователи