Як встановити 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. Завантажте пакет Oracle SE JDK RPM.

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 безкоштовного 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щоб вимкнути анонімний доступ.

Увімкнути автентифікацію Shiro

Тепер, коли ми вимкнули анонімний доступ, нам потрібно ввімкнути якийсь механізм аутентифікації, щоб привілейовані користувачі могли входити в систему. 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.


Як встановити Microweber на CentOS 7

Як встановити Microweber на CentOS 7

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Встановлення Microweber на Ubuntu 16.04

Встановлення Microweber на Ubuntu 16.04

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Як встановити платформу електронної комерції Sylius на Ubuntu 18.04 LTS

Як встановити платформу електронної комерції Sylius на Ubuntu 18.04 LTS

Використання іншої системи? Sylius — сучасна платформа електронної комерції для PHP, заснована на Symfony Framework. Джерело Sylius знаходиться на GitHub. Цей посібник буде працювати

Як встановити Cezerin eCommerce на Ubuntu 18.04

Як встановити Cezerin eCommerce на Ubuntu 18.04

Cezerin — це прогресивний веб-додаток для електронної комерції з відкритим кодом, створений за допомогою React і Node.js. У цьому підручнику ви дізнаєтеся, як розгорнути Cezerin для Productio

Як встановити OpenMeetings на CentOS 7

Як встановити OpenMeetings на CentOS 7

Використання іншої системи? Apache OpenMeetings — це програма для веб-конференцій з відкритим кодом. Він написаний на Java і підтримує декілька серверів баз даних. я

Як встановити програму розсилки Mailtrain на Debian 9

Як встановити програму розсилки Mailtrain на Debian 9

Використання іншої системи? Mailtrain — це програма для розсилки інформаційних бюлетенів з відкритим вихідним кодом, створена на основі Node.js і MySQL/MariaDB. Джерело Mailtrains знаходиться на GitHub. Ті

Встановлення Akaunting на Fedora 28

Встановлення Akaunting на Fedora 28

Використання іншої системи? Akaunting — це безкоштовне програмне забезпечення для бухгалтерського обліку з відкритим кодом і онлайн, розроблене для малого бізнесу та фрілансерів. Він побудований дотепно

OpenBSD як рішення для електронної комерції з PrestaShop і Apache

OpenBSD як рішення для електронної комерції з PrestaShop і Apache

Вступ У цьому підручнику демонструється OpenBSD як рішення для електронної комерції з використанням PrestaShop і Apache. Apache потрібен, оскільки PrestaShop має складну UR

Як встановити додаток Mailtrain Newsletter на Ubuntu 16.04

Як встановити додаток Mailtrain Newsletter на Ubuntu 16.04

Використання іншої системи? Mailtrain — це програма для розсилки інформаційних бюлетенів з відкритим вихідним кодом, створена на основі Node.js і MySQL/MariaDB. Джерело Mailtrains знаходиться на GitHub. Ті

Як встановити InvoicePlane на Fedora 28

Як встановити InvoicePlane на Fedora 28

Використання іншої системи? InvoicePlane — це безкоштовна програма для виставлення рахунків з відкритим кодом. Його вихідний код можна знайти в цьому репозиторії Github. Цей довідник

Як встановити osTicket на CentOS 7

Як встановити osTicket на CentOS 7

Використання іншої системи? osTicket — це система продажу квитків з відкритим вихідним кодом. Вихідний код osTicket відкрито розміщено на Github. У цьому підручнику

Як встановити Open Web Analytics на CentOS 7

Як встановити Open Web Analytics на CentOS 7

Використання іншої системи? Open Web Analytics (OWA) — це програма веб-аналітики з відкритим кодом, яку можна використовувати для відстеження та аналізу того, як люди використовують ваш веб-сайт.

Як встановити Osclass на Ubuntu 18.04 LTS

Як встановити Osclass на Ubuntu 18.04 LTS

Використання іншої системи? Osclass — це проект з відкритим кодом, який дозволяє легко створювати сайт із оголошеннями без будь-яких технічних знань. Його джерело

Як встановити OpenMeetings на Ubuntu 16.04

Як встановити OpenMeetings на Ubuntu 16.04

Використання іншої системи? Apache OpenMeetings — це програма для веб-конференцій з відкритим кодом. Він написаний на Java і підтримує декілька серверів баз даних. я

Як встановити X-Cart 5 на Fedora 31

Як встановити X-Cart 5 на Fedora 31

Використання іншої системи? X-Cart — це надзвичайно гнучка платформа електронної комерції з відкритим вихідним кодом з безліччю функцій та інтеграцій. Вихідний код X-Cart — хост

Встановлення Microweber на FreeBSD 12

Встановлення Microweber на FreeBSD 12

Використання іншої системи? Вступ Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей довідник

Як встановити X-Cart 5 на Debian 10

Як встановити X-Cart 5 на Debian 10

Використання іншої системи? X-Cart — це надзвичайно гнучка платформа електронної комерції з відкритим вихідним кодом з безліччю функцій та інтеграцій. Вихідний код X-Cart — хост

Як встановити Matomo Analytics на Fedora 28

Як встановити Matomo Analytics на Fedora 28

Використання іншої системи? Matomo (раніше Piwik) — це аналітична платформа з відкритим вихідним кодом, відкрита альтернатива Google Analytics. Джерело Matomo розміщено o

Як встановити Zammad 2.0 на CentOS 7

Як встановити Zammad 2.0 на CentOS 7

Використання іншої системи? Zammad — це служба підтримки та продажу квитків з відкритим кодом, розроблена для команд підтримки клієнтів. З Zammad, обслуговування клієнтів

Як встановити Zammad 2.0 на Ubuntu 16.04 LTS

Як встановити Zammad 2.0 на Ubuntu 16.04 LTS

Використання іншої системи? Zammad — це служба підтримки та продажу квитків з відкритим кодом, розроблена для команд підтримки клієнтів. З Zammad, обслуговування клієнтів

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

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

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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