Cara Memasang Apache Zeppelin di CentOS 7

Apache Zeppelin adalah notebook open source berbasis web dan alat kolaborasi untuk konsumsi data interaktif, penemuan, analitik, dan visualisasi. Zeppelin mendukung 20+ bahasa termasuk Apache Spark, SQL, R, Elasticsearch dan banyak lagi. Apache Zeppelin memungkinkan Anda membuat dokumen yang digerakkan oleh data yang indah dan melihat hasil analisis Anda.

Prasyarat

  • Contoh server Vultr CentOS 7.
  • Seorang pengguna sudo .
  • Nama domain menunjuk ke arah server.

Untuk tutorial ini, kita akan menggunakan zeppelin.example.comnama domain yang menunjuk ke instance Vultr. Pastikan untuk mengganti semua kemunculan nama domain contoh dengan yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui CentOS 7 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal Java.

Instal Java

Apache Zeppelin ditulis dalam Java, sehingga membutuhkan JDK untuk bekerja. Unduh paket 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"

Instal paket yang diunduh.

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

Jika Java telah diinstal dengan sukses, maka Anda harus dapat memverifikasi versinya.

java -version

Anda akan melihat output berikut.

[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)

Sebelum kita dapat melangkah lebih jauh, kita perlu mengatur variabel JAVA_HOMEdan JRE_HOMElingkungan. Temukan jalur absolut dari JAVA yang dapat dieksekusi di sistem Anda.

readlink -f $(which java)

Anda akan melihat output yang serupa.

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

Sekarang, setel JAVA_HOMEdan JRE_HOMEvariabel lingkungan sesuai dengan jalur direktori 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

Jalankan bash_profilefile.

source ~/.bash_profile

Sekarang Anda dapat menjalankan echo $JAVA_HOMEperintah untuk memeriksa apakah variabel lingkungan diatur.

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

Instal Zeppelin

Apache Zeppelin mengirimkan semua dependensi beserta file binernya, jadi kami tidak perlu menginstal apa pun selain Java. Unduh biner Zeppelin di sistem Anda. Anda selalu dapat menemukan versi terbaru aplikasi di halaman unduhan Zeppelin .

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

Ekstrak arsipnya.

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

Perintah di atas akan mengekstrak arsip ke /opt/zeppelin-0.7.3-bin-all. Ganti nama direktori demi kenyamanan.

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

Apache Zeppelin sekarang diinstal. Anda dapat segera memulai aplikasi, tetapi itu tidak akan dapat diakses oleh Anda, karena hanya mendengarkan localhost. Kami akan mengonfigurasi Apache Zeppelin sebagai layanan. Kami juga akan mengonfigurasi server web Nginx sebagai proxy terbalik.

Konfigurasikan layanan Systemd

Pada langkah ini, kita akan menyiapkan file unit Systemd untuk aplikasi Zeppelin. Ini akan memastikan bahwa proses aplikasi secara otomatis dimulai pada sistem restart dan kegagalan.

Untuk alasan keamanan, buat pengguna yang tidak terjangkau untuk menjalankan proses Zeppelin.

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

Berikan kepemilikan file kepada pengguna Zeppelin yang baru dibuat.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Buat file unit layanan Systemd baru.

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

Isi file dengan yang berikut ini.

[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

Mulai aplikasi.

sudo systemctl start zeppelin

Aktifkan layanan Zeppelin untuk mulai secara otomatis saat boot.

sudo systemctl enable zeppelin

Untuk memeriksa apakah layanan ini berjalan, Anda dapat menjalankan yang berikut ini.

sudo systemctl status zeppelin

Konfigurasikan Proksi Terbalik

Secara default, server Zeppelin mendengarkan localhostpada port 8080. Dalam tutorial ini, kita akan menggunakan Nginx sebagai proksi terbalik sehingga aplikasi dapat diakses melalui standar HTTPdan HTTPSport. Kami juga akan mengkonfigurasi Nginx untuk menggunakan SSL yang dihasilkan dengan Let's Encrypt SSL CA gratis.

Instal Nginx.

sudo yum -y install nginx

Mulai Nginx dan aktifkan untuk mulai secara otomatis saat boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Instal Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo yum -y install certbot

Sebelum Anda dapat meminta sertifikat, Anda harus mengizinkan port 80dan 443atau standar HTTPdan HTTPSlayanan melalui firewall.

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

Catatan : Untuk mendapatkan sertifikat dari Let's Encrypt CA, domain tempat sertifikat akan dibuat harus diarahkan ke server. Jika tidak, buat perubahan yang diperlukan pada catatan DNS domain dan tunggu hingga DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Buat sertifikat SSL.

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

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/zeppelin.example.com/. Sertifikat SSL akan disimpan sebagai fullchain.pemdan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, oleh karena itu disarankan untuk mengatur perpanjangan otomatis sertifikat menggunakan pekerjaan Cron.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut di akhir file.

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

Pekerjaan cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat jatuh tempo, sertifikat akan diperpanjang secara otomatis.

Buat file blok server baru untuk situs Zeppelin.

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

Mengisi file.

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;
    }
  }

Nyalakan kembali Nginx agar perubahan dapat diterapkan.

sudo systemctl restart nginx zeppelin

Zeppelin sekarang dapat diakses di alamat berikut.

https://zeppelin.example.com

Secara default, tidak ada otentikasi yang diaktifkan, sehingga Anda dapat menggunakan aplikasi secara langsung.

Karena aplikasi ini dapat diakses oleh semua orang, notebook yang Anda buat juga dapat diakses oleh semua orang. Sangat penting untuk menonaktifkan akses anonim dan mengaktifkan otentikasi sehingga hanya pengguna yang diautentikasi yang dapat mengakses aplikasi.

Nonaktifkan Akses Anonim

Untuk menonaktifkan akses anonim default, salin templat file konfigurasi ke lokasi aslinya.

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

Edit file konfigurasi.

sudo nano conf/zeppelin-site.xml

Temukan baris berikut dalam file.

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

Ubah nilainya menjadi falseuntuk menonaktifkan akses anonim.

Aktifkan Otentikasi Shiro

Sekarang kami telah menonaktifkan akses anonim, kami perlu mengaktifkan beberapa jenis mekanisme otentikasi sehingga pengguna istimewa dapat login. Apache Zeppelin menggunakan otentikasi Shiro Apache. Salin file konfigurasi Shiro.

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

Edit file konfigurasi.

sudo nano conf/shiro.ini

Temukan baris berikut dalam file.

[users]

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

Daftar ini berisi nama pengguna, kata sandi, dan peran pengguna. Untuk saat ini, kami hanya akan menggunakan admindan user1. Ubah kata sandi admindan user1dan nonaktifkan pengguna lain dengan berkomentar. Anda juga dapat mengubah nama pengguna dan peran pengguna. Untuk mempelajari lebih lanjut tentang pengguna dan peran Apache Shiro, baca panduan otorisasi Shiro .

Setelah Anda mengubah kata sandi, blok kode akan terlihat seperti ini.

[users]

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

Sekarang mulai ulang Zeppelin untuk menerapkan perubahan.

sudo systemctl restart zeppelin

Anda harus melihat bahwa otentikasi telah diaktifkan dan Anda akan dapat masuk menggunakan nama pengguna dan kata sandi yang diatur dalam file konfigurasi Shiro.



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut