Добрый день! Сегодня мы рассмотрим установку Apache Zeppelin на ОС семейства Linux, CentOS8.
Apache Zeppelin — проект Apache Software Foundation, направленный на разработку программного обеспечения для анализа и визуализации данных и совместной работы над данными (посредством интеграции с Apache Spark.
В качестве сервера мы будем использовать виртуальную машину со следующей конфигурацией:
CPU: 2 ядра
ОЗУ: 4Гб
HDD: 100гб
Подготовка к установке
Перед началом установки, установим пакет JAVA, Oracle JDK 8. Для этого подключимся к нашей виртуальной машине посредством утилиты WinSCP. Скопируем RPM пакет для установки JDK в домашнюю папку пользователя.
Подключимся по SSH к нашей виртуальной машине и выполним команду:
rpm -ihv jdk-8u151-linux-x64.rpm
По окончании установки проверим версию JAVA, командой:
java -version
Установка Apache Zeppelin
Создадим в корневой директории новый каталог, который назовем app, для этого выполним команду:
mkdir -p /app
Далее создадим отдельного пользователя, которого назовем zeppelin, пользователя можно создать используя команду:
useradd zeppelin
Далее зададим пользователю zeppelin пароль, чтобы задать пароль воспользуемся утилитой passwd:
passwd zeppelin
Изменим владельца каталога на пользователя zeppelin:
chown -R zeppelin:zeppelin /app
Для проверки владельца каталога и группы выполним: ll
Сменим пользователя на zeppelin:
su - zeppelin
Перейдем в каталог /app:
cd /app
Далее загрузим архив с бинарным пакетом при помощи утилиты wget:
wget http://apache-mirror.rbc.ru/pub/apache/zeppelin/zeppelin-0.8.2/zeppelin-0.8.2-bin-all.tgz
После чего распакуем архив при помощи утилиты tar и ключей -xvf:
tar -xvf zeppelin-0.8.2-bin-all.tgz
Далее изменим имя каталога с zeppelin-0.8.2-bin-all на zeppelin
mv zeppelin-0.8.2-bin-all на zeppelin
В качестве порта для подключения, по умолчанию Zeppelin использует порт 8080, поэтому откроем порт 8080 в firewall, после чего перезапустим firewall. Чтобы иметь возможность изменять правила firewall выйдем из пользователя zeppelin, обратно к пользователю root.
exit firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --reload
Чтобы проверить, что порт открыт выполним следующую команду:
firewall-cmd --permanent --list-all
Теперь снова перейдем на пользователя zeppelin, и запустим apache zeppelin, для этого перейдем в каталог:
cd /app/zeppelin/bin
Запустим скрип запуска демона и передадим параметр start, проверим что служба стала прослушивать локальный порт 8080:
./zeppelin-daemon.sh start netstat -ntulp
Далее проверим, что нам доступна страница внутри нашей виртуальной машины для этого выполним:
curl localhost:8080
Если страница доступна то к нам вернется текстовое содержимое страницы.
К сожалению после установки Apache Zeppelin, будет доступен только из машины на которую он был установлен. При попытки подключиться из локальной сети к нашему Apache Zeppelin, мы увидим, что страница не доступна.
Решить данную проблему можно разными способами, мы же рассмотрим как настроить proxy сервер Nginx, чтобы нам стал доступен Apache Zeppelin из локальной сети, а не только внутри виртуальной машины.
Статью по настройке Nginx, для Apache Zeppelin вы можете найти здесь.
Так как не особо удобно постоянно для перезапуска использовать пользователя и скрипт работы с демоном, то логичнее было бы создать сервис с которым бы мы смогли работать по средством утилиты systemctl. Поэтому далее давайте рассмотрим как создать сервис для работы с Apache Zeppelin.