Как установить Apache Zeppelin на CentOS 7

Apache Zeppelin - это веб-блокнот с открытым исходным кодом и инструмент для совместной работы для интерактивного ввода, обнаружения, анализа и визуализации данных. Zeppelin поддерживает более 20 языков, включая Apache Spark, SQL, R, Elasticsearch и многие другие. Apache Zeppelin позволяет создавать прекрасные документы, управляемые данными, и просматривать результаты своей аналитики.

Предпосылки

  • Экземпляр сервера Vultr CentOS 7.
  • Пользователь Sudo .
  • Доменное имя указывает на сервер.

В этом руководстве мы будем использовать zeppelin.example.comимя домена, указывающее на экземпляр Vultr. Обязательно замените все вхождения примера доменного имени на фактическое.

Обновите базовую систему, используя руководство Как обновить CentOS 7 . После обновления системы перейдите к установке Java.

Установить Java

Apache Zeppelin написан на Java, поэтому для его работы требуется JDK. Загрузите RPM-пакет Oracle SE JDK.

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm"

Установите скачанный пакет.

sudo yum -y localinstall jdk-8u151-linux-x64.rpm

Если Java успешно установлена, вы сможете проверить ее версию.

java -version

Вы увидите следующий вывод.

[user@vultr ~]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

Прежде чем мы продолжим, нам нужно будет установить переменные среды JAVA_HOMEи JRE_HOME. Найдите абсолютный путь к исполняемому файлу JAVA в вашей системе.

readlink -f $(which java)

Вы увидите похожий вывод.

[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_151/jre/bin/java

Теперь установите переменные среды JAVA_HOMEи в JRE_HOMEсоответствии с путем к каталогу Java.

echo "export JAVA_HOME=/usr/java/jdk1.8.0_151" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_151/jre" >> ~/.bash_profile

Запустите bash_profileфайл.

source ~/.bash_profile

Теперь вы можете запустить echo $JAVA_HOMEкоманду, чтобы проверить, установлена ​​ли переменная окружения.

[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_151

Установить Zeppelin

Apache Zeppelin поставляет все зависимости вместе с двоичными файлами, поэтому нам не нужно устанавливать ничего, кроме Java. Загрузите бинарный файл Zeppelin в вашей системе. Вы всегда можете найти последнюю версию приложения на странице загрузки Zeppelin .

wget http://www-us.apache.org/dist/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgz

Распакуйте архив.

sudo tar xf zeppelin-*-bin-all.tgz -C /opt

Приведенная выше команда распакует архив в /opt/zeppelin-0.7.3-bin-all. Переименуйте каталог для удобства.

sudo mv /opt/zeppelin-*-bin-all /opt/zeppelin

Apache Zeppelin теперь установлен. Вы можете сразу запустить приложение, но оно не будет вам доступно, так как оно localhostтолько слушает . Мы настроим Apache Zeppelin как сервис. Мы также настроим веб-сервер Nginx в качестве обратного прокси.

Настройка службы Systemd

На этом этапе мы настроим файл модуля Systemd для приложения Zeppelin. Это обеспечит автоматический запуск процесса приложения при перезапуске системы и сбоях.

В целях безопасности создайте непривилегированного пользователя для запуска процесса Zeppelin.

sudo adduser -d /opt/zeppelin -s /sbin/nologin zeppelin

Предоставьте право собственности на файлы только что созданному пользователю Zeppelin.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Создайте новый файл сервисного модуля Systemd.

sudo nano /etc/systemd/system/zeppelin.service

Заполните файл следующим.

[Unit]
Description=Zeppelin service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/zeppelin/bin/zeppelin-daemon.sh start
ExecStop=/opt/zeppelin/bin/zeppelin-daemon.sh stop
ExecReload=/opt/zeppelin/bin/zeppelin-daemon.sh reload
User=zeppelin
Group=zeppelin
Restart=always

[Install]
WantedBy=multi-user.target

Запустите приложение.

sudo systemctl start zeppelin

Включите службу Zeppelin для автоматического запуска во время загрузки.

sudo systemctl enable zeppelin

Чтобы проверить, работает ли служба, вы можете запустить следующее.

sudo systemctl status zeppelin

Настроить обратный прокси

По умолчанию сервер Zeppelin прослушивает localhostпорт 8080. В этом руководстве мы будем использовать Nginx в качестве обратного прокси-сервера, чтобы к приложению можно было обращаться через стандарт HTTPи HTTPSпорты. Мы также настроим Nginx для использования SSL, сгенерированного с помощью Let's Encrypt free SSL CA.

Установите Nginx.

sudo yum -y install nginx

Запустите Nginx и включите его автоматический запуск во время загрузки.

sudo systemctl start nginx
sudo systemctl enable nginx

Установите Certbot, который является клиентским приложением для Let's Encrypt CA.

sudo yum -y install certbot

Прежде чем вы сможете запросить сертификаты, вам нужно будет разрешить порт 80и / 443или стандартные HTTPи HTTPSсервисы через брандмауэр.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

Примечание . Что��ы получить сертификаты от Let's Encrypt CA, домен, для которого должны быть созданы сертификаты, должен быть направлен на сервер. Если нет, внесите необходимые изменения в записи DNS домена и дождитесь распространения DNS, прежде чем снова делать запрос сертификата. Certbot проверяет полномочия домена перед предоставлением сертификатов.

Создайте сертиф��каты SSL.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d zeppelin.example.com

Сгенерированные сертификаты, вероятно, будут храниться в /etc/letsencrypt/live/zeppelin.example.com/. Сертификат SSL будет сохранен как, fullchain.pemа закрытый ключ - как privkey.pem.

Срок действия сертификатов Let's Encrypt истекает через 90 дней, поэтому рекомендуется настроить автоматическое обновление сертификатов с помощью заданий Cron.

Откройте файл задания cron.

sudo crontab -e

Добавьте следующую строку в конец файла.

30 5 * * * /usr/bin/certbot renew --quiet

Вышеуказанная работа cron будет выполняться каждый день в 5:30. Если срок действия сертификата истекает, он автоматически обновляет их.

Создайте новый файл блока сервера для сайта Zeppelin.

sudo nano /etc/nginx/conf.d/zeppelin.example.com.conf

Заполните файл.

upstream zeppelin {
server 127.0.0.1:8080;
}
server {
    listen 80;
    server_name zeppelin.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name zeppelin.example.com;

    ssl_certificate           /etc/letsencrypt/live/zeppelin.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/zeppelin.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log  /var/log/nginx/zeppelin.access.log;

location / {
        proxy_pass http://zeppelin;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_redirect off;
    }
location /ws {
    proxy_pass http://zeppelin/ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection upgrade;
    proxy_read_timeout 86400;
    }
  }

Перезапустите Nginx, чтобы изменения вступили в силу.

sudo systemctl restart nginx zeppelin

Zeppelin теперь доступен по следующему адресу.

https://zeppelin.example.com

По умолчанию аутентификация не включена, поэтому вы можете использовать приложение напрямую.

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

Отключить анонимный доступ

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

cd /opt/zeppelin
sudo cp conf/zeppelin-site.xml.template conf/zeppelin-site.xml

Отредактируйте файл конфигурации.

sudo nano conf/zeppelin-site.xml

Найдите следующие строки в файле.

<property>
  <name>zeppelin.anonymous.allowed</name>
  <value>true</value>

Измените значение на, falseчтобы отключить анонимный доступ.

Включить аутентификацию Широ

Теперь, когда мы отключили анонимный доступ, нам нужно включить некоторый механизм аутентификации, чтобы привилегированные пользователи могли войти в систему. Apache Zeppelin использует аутентификацию Apache Shiro. Скопируйте файл конфигурации Shiro.

sudo cp conf/shiro.ini.template conf/shiro.ini

Отредактируйте файл конфигурации.

sudo nano conf/shiro.ini

Найдите следующие строки в файле.

[users]

admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4, role2

Список содержит имя пользователя, пароль и роли пользователей. На данный момент мы будем использовать только adminи user1. Измените пароль adminи user1и отключите других пользователей, комментируя их. Вы также можете изменить имя пользователя и роли пользователей. Чтобы узнать больше о пользователях и ролях Apache Shiro, прочитайте руководство по авторизации Shiro .

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

[users]

admin = StrongPassword, admin
user1 = UserPassword, role1, role2
# user2 = password3, role3
# user3 = password4, role2

Теперь перезапустите Zeppelin, чтобы применить изменения.

sudo systemctl restart zeppelin

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



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше