Cara Pasang Apache Zeppelin pada Ubuntu 16.04

Apache Zeppelin adalah buku nota sumber terbuka berasaskan web dan alat kolaboratif untuk penyerapan, penemuan, analisis dan visualisasi data interaktif. Zeppelin menyokong lebih daripada 20 bahasa termasuk Apache Spark, SQL, R, Elasticsearch dan banyak lagi. Apache Zeppelin membolehkan anda membuat dokumen yang dipacu data yang indah dan melihat hasil analitik anda.

Prasyarat

  • Contoh pelayan Vultr Ubuntu 16.04.
  • Pengguna sudo .
  • Nama domain menunjuk ke pelayan.

Untuk tutorial ini, kami akan gunakan zeppelin.example.com sebagai nama domain menunjuk ke arah contoh Vultr. Sila pastikan untuk menggantikan semua kejadian nama domain contoh dengan yang sebenarnya.

Kemas kini sistem asas anda menggunakan panduan Cara Kemaskini Ubuntu 16.04 . Apabila sistem anda telah dikemas kini, teruskan untuk memasang Java.

Pasang Java

Apache Zeppelin ditulis di Jawa, oleh itu ia memerlukan JDK untuk berfungsi. Tambahkan repositori Ubuntu untuk Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Pasang Oracle Java.

sudo apt -y install oracle-java8-installer

Sahkan versinya.

java -version

Anda akan melihat output berikut.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Tetapkan jalan lalai untuk Java dengan memasang pakej berikut.

sudo apt -y install oracle-java8-set-default

Anda boleh mengesahkan jika JAVA_HOMEditetapkan dengan berjalan.

echo $JAVA_HOME

Awak akan lihat.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Sekiranya anda tidak melihat output sama sekali, anda perlu keluar dari shell semasa dan log masuk semula.

Pasang Zeppelin

Apache Zeppelin menghantar semua pergantungan bersama dengan fail binari, jadi kami tidak perlu memasang yang lain kecuali Java. Muat turun binari Zeppelin pada sistem anda. Anda boleh mendapatkan versi aplikasi terkini di halaman muat turun Zeppelin .

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

Ekstrak arkib.

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

Perintah di atas akan mengeluarkan arkib ke /opt/zeppelin-0.7.3-bin-all. Namakan semula direktori demi kemudahan.

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

Apache Zeppelin kini dipasang. Anda boleh memulakan aplikasi ini dengan segera, tetapi ia tidak boleh diakses oleh anda, kerana ia localhosthanya mendengar . Kami akan mengkonfigurasi Apache Zeppelin sebagai perkhidmatan. Kami juga akan mengkonfigurasi Nginx sebagai proksi terbalik.

Konfigurasikan Systemd

Dalam langkah ini, kita akan menyediakan fail unit Systemd untuk aplikasi Zeppelin. Ini akan memastikan bahawa proses permohonan secara automatik bermula pada sistem semula dan kegagalan.

Atas sebab keselamatan, buat pengguna yang tidak bernasib baik untuk menjalankan proses Zeppelin.

sudo useradd -d /opt/zeppelin -s /bin/false zeppelin

Berikan hak milik fail kepada pengguna Zeppelin yang baru dibuat.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Buat fail unit Sistem perkhidmatan baru.

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

Isi fail dengan yang berikut.

[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

Mulakan permohonan.

sudo systemctl start zeppelin

Dayakan perkhidmatan Zeppelin untuk memulakan secara automatik pada masa boot.

sudo systemctl enable zeppelin

Untuk memastikan perkhidmatan berjalan, anda boleh menjalankan yang berikut.

sudo systemctl status zeppelin

Konfigurasikan Proksi Terbalik

Secara lalai, pelayan Zeppelin mendengar localhost pada port 8080. Kami akan menggunakan Nginx sebagai proksi terbalik supaya aplikasi boleh diakses melalui standard HTTP dan HTTPS port. Kami juga akan mengkonfigurasi Nginx untuk menggunakan SSL yang dihasilkan dengan Let's Encrypt SSL CA percuma.

Pasang Nginx.

sudo apt -y install nginx

Mula Nginx dan aktifkannya secara automatik pada masa boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Tambah repositori Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Pasang Certbot, iaitu aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot

Catatan : Untuk mendapatkan sijil dari Let's Encrypt CA, domain yang akan dibuat sijil mesti diarahkan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain dan tunggu DNS disebarkan sebelum membuat permintaan sijil lagi. Certbot memeriksa pihak berkuasa domain sebelum menyediakan sijil.

Menjana sijil SSL.

sudo certbot certonly --webroot -w /var/www/html -d zeppelin.example.com

Sijil yang dijana mungkin disimpan di dalam /etc/letsencrypt/live/zeppelin.example.com/. Sijil SSL akan disimpan sebagai fullchain.pem dan kunci peribadi akan disimpan sebagai privkey.pem.

Mari Sijikan sijil tamat tempoh dalam 90 hari, oleh itu, disyorkan untuk menyediakan pembaharuan automatik sijil menggunakan kerja-kerja Cron.

Buka fail kerja cron.

sudo crontab -e

Tambahkan garisan berikut pada akhir fail.

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

Pekerjaan cron di atas akan dijalankan setiap hari pada jam 5:30 pagi. Sekiranya sijil perlu tamat tempoh, ia akan diperbaharui secara automatik.

Buat fail blok pelayan baru untuk tapak Zeppelin.

sudo nano /etc/nginx/sites-available/zeppelin

Isi fail.

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

Aktifkan fail konfigurasi.

sudo ln -s /etc/nginx/sites-available/zeppelin /etc/nginx/sites-enabled/zeppelin

Restart Nginx supaya perubahan tersebut dapat diterapkan.

sudo systemctl restart nginx zeppelin

Zeppelin kini boleh diakses di alamat berikut.

https://zeppelin.example.com

Secara lalai, tidak ada pengesahan yang didayakan, jadi anda boleh menggunakan aplikasi secara langsung.

Oleh kerana aplikasinya dapat diakses oleh semua orang, buku nota yang anda buat juga dapat diakses oleh semua orang. Sangat penting untuk melumpuhkan akses tanpa nama dan membolehkan pengesahan supaya hanya pengguna yang disahkan dapat mengakses aplikasi tersebut.

Lumpuhkan Akses Anonymous

Untuk melumpuhkan akses lalai tanpa nama, salin templat fail konfigurasi ke lokasi hidupnya.

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

Edit fail konfigurasi.

sudo nano conf/zeppelin-site.xml

Cari baris berikut dalam fail.

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

Tukar nilai false untuk melumpuhkan akses tanpa nama.

Dayakan Pengesahan Shiro

Sekarang bahawa kami telah melumpuhkan akses tanpa nama, kami perlu mengaktifkan beberapa jenis mekanisme pengesahan supaya pengguna istimewa boleh masuk. Apache Zeppelin menggunakan pengesahan Apache Shiro. Salin fail konfigurasi Shiro.

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

Edit fail konfigurasi.

sudo nano conf/shiro.ini

Cari baris berikut dalam fail.

[users]

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

Senarai ini mengandungi nama pengguna, kata laluan, dan peranan pengguna. Buat masa ini, kami hanya akan menggunakan admin dan user1. Tukar kata laluan admin dan user1 dan nyahdayakan pengguna lain dengan mengulas mereka. Anda juga boleh menukar nama pengguna dan peranan pengguna. Untuk mengetahui lebih lanjut mengenai pengguna dan peranan Apache Shiro, baca panduan pengesahan Shiro .

Sebaik sahaja anda telah menukar kata laluan, blok kod harus seperti ini.

[users]

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

Sekarang mulakan semula Zeppelin untuk menerapkan perubahan.

sudo systemctl restart zeppelin

Anda akan melihat bahawa pengesahan telah diaktifkan dan anda akan dapat log masuk menggunakan nama pengguna dan kata laluan yang ditetapkan dalam fail konfigurasi Shiro.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut