Ubuntu 16.04 Üzerinde Apache Zeppelin Kurulumu

Apache Zeppelin, etkileşimli veri alımı, keşfi, analitiği ve görselleştirmesi için web tabanlı bir açık kaynak not defteri ve işbirliği aracıdır. Zeppelin, Apache Spark, SQL, R, Elasticsearch ve daha pek çok dil dahil 20'den fazla dili desteklemektedir. Apache Zeppelin, güzel veri odaklı belgeler oluşturmanıza ve analizlerinizin sonuçlarını görmenize olanak tanır.

Ön şartlar

  • Bir Vultr Ubuntu 16.04 sunucu örneği.
  • Bir sudo kullanıcısı .
  • Bir alan adı sunucuya işaret etti.

Bu eğitimde, zeppelin.example.com Vultr örneğine işaret eden alan adı olarak kullanacağız . Lütfen örnek alan adının tüm tekrarlarını gerçek adla değiştirdiğinizden emin olun.

Ubuntu 16.04 Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, Java'yı yüklemeye devam edin.

Java'yı yükleyin

Apache Zeppelin Java ile yazılmıştır, dolayısıyla JDK'nın çalışmasını gerektirir. Oracle Java 8 için Ubuntu deposunu ekleyin.

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

Oracle Java'yı yükleyin.

sudo apt -y install oracle-java8-installer

Sürümünü doğrulayın.

java -version

Aşağıdaki çıktıyı göreceksiniz.

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)

Aşağıdaki paketi yükleyerek Java için varsayılan yolu ayarlayın.

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

Koşarak JAVA_HOMEayarlanıp ayarlanmadığını doğrulayabilirsiniz .

echo $JAVA_HOME

Göreceksin.

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

Hiç çıktı görmüyorsanız, geçerli kabuktan çıkış yapmanız ve tekrar oturum açmanız gerekir.

Zeppelin'i yükleyin

Apache Zeppelin, ikili dosyalar ile birlikte tüm bağımlılıkları gönderir, bu nedenle Java dışında başka bir şey yüklememiz gerekmez. Sisteminize Zeppelin ikili dosyasını indirin. Uygulamanın en son sürümünü her zaman Zeppelin indirme sayfasında bulabilirsiniz .

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

Arşivi çıkartın.

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

Yukarıdaki komut arşivi ayıklayacaktır /opt/zeppelin-0.7.3-bin-all. Kolaylık sağlamak için dizini yeniden adlandırın.

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

Apache Zeppelin kuruldu. Uygulamayı hemen başlatabilirsiniz, ancak localhostyalnızca dinlediği için erişilemez . Apache Zeppelin'i bir hizmet olarak yapılandıracağız. Nginx'i ters proxy olarak da yapılandıracağız.

Systemd'yi Yapılandır

Bu adımda, Zeppelin uygulaması için bir Systemd birim dosyası kuracağız. Bu, uygulama işleminin sistem yeniden başlatılırken ve hatalarda otomatik olarak başlatılmasını sağlar.

Güvenlik nedeniyle, Zeppelin işlemini çalıştırmak için ayrıcalıklı bir kullanıcı oluşturun.

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

Yeni oluşturulan Zeppelin kullanıcısına dosyaların sahipliğini sağlayın.

sudo chown -R zeppelin:zeppelin /opt/zeppelin

Yeni bir Systemd hizmet birimi dosyası oluşturun.

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

Dosyayı aşağıdakilerle doldurun.

[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

Uygulamayı başlatın.

sudo systemctl start zeppelin

Zeppelin hizmetinin önyükleme zamanında otomatik olarak başlamasını etkinleştirin.

sudo systemctl enable zeppelin

Hizmetin çalıştığından emin olmak için aşağıdakileri çalıştırabilirsiniz.

sudo systemctl status zeppelin

Ters Proxy'yi Yapılandırma

Varsayılan olarak, Zeppelin sunucusu localhost bağlantı noktasında dinler 8080. Uygulamaya standart HTTP ve HTTPS bağlantı noktaları üzerinden erişilebilmesi için Nginx'i ters proxy olarak kullanacağız . Ayrıca Nginx'i, ücretsiz SSL CA'sını Şifreleyelim ile oluşturulan bir SSL kullanacak şekilde de yapılandıracağız.

Nginx'i yükleyin.

sudo apt -y install nginx

Nginx'i başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.

sudo systemctl start nginx
sudo systemctl enable nginx

Certbot deposunu ekleyin.

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

Let's Encrypt CA'nın istemci uygulaması olan Certbot'u yükleyin.

sudo apt -y install certbot

Not : Let's Encrypt CA'dan sertifika almak için, sertifikaların oluşturulacağı etki alanı sunucuya yönlendirilmelidir. Değilse, etki alanının DNS kayıtlarında gerekli değişiklikleri yapın ve sertifika isteğini yeniden yapmadan önce DNS'nin yayılmasını bekleyin. Certbot, sertifikaları vermeden önce etki alanı yetkilisini denetler.

SSL sertifikaları oluşturun.

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

Oluşturulan sertifikaların depolanması muhtemeldir /etc/letsencrypt/live/zeppelin.example.com/. SSL sertifikası olarak fullchain.pem ve özel anahtar olarak depolanacaktır privkey.pem.

Sertifikaların şifrelenmesini 90 gün içinde sona erdirelim, bu nedenle Cron işlerini kullanarak sertifikaların otomatik olarak yenilenmesi önerilir.

Cron iş dosyasını açın.

sudo crontab -e

Dosyanın sonuna aşağıdaki satırı ekleyin.

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

Yukarıdaki cron işi her gün 05: 30'da çalışacaktır. Sertifikanın geçerlilik süresi dolmuşsa, otomatik olarak yenilenir.

Zeppelin sitesi için yeni bir sunucu blok dosyası oluşturun.

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

Dosyayı doldurun.

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

Yapılandırma dosyasını etkinleştirin.

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

Değişikliklerin etkili olabilmesi için Nginx'i yeniden başlatın.

sudo systemctl restart nginx zeppelin

Zeppelin artık aşağıdaki adresten erişilebilir.

https://zeppelin.example.com

Varsayılan olarak, kimlik doğrulama etkin değildir, bu nedenle uygulamayı doğrudan kullanabilirsiniz.

Uygulamaya herkes erişebildiğinden, oluşturduğunuz not defterlerine herkes erişebilir. Anonim erişimi devre dışı bırakmak ve kimlik doğrulamayı etkinleştirmek çok önemlidir, böylece uygulamaya yalnızca kimliği doğrulanmış kullanıcılar erişebilir.

Anonim Erişimi Devre Dışı Bırak

Varsayılan anonim erişimi devre dışı bırakmak için yapılandırma dosyası şablonunu canlı konumuna kopyalayın.

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

Yapılandırma dosyasını düzenleyin.

sudo nano conf/zeppelin-site.xml

Dosyada aşağıdaki satırları bulun.

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

false Anonim erişimi devre dışı bırakmak için değeri değiştirin .

Shiro Kimlik Doğrulamasını Etkinleştir

Anonim erişimi devre dışı bıraktığımıza göre, ayrıcalıklı kullanıcıların oturum açabilmesi için bir tür kimlik doğrulama mekanizmasını etkinleştirmemiz gerekiyor. Apache Zeppelin, Apache Shiro kimlik doğrulamasını kullanıyor. Shiro yapılandırma dosyasını kopyalayın.

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

Yapılandırma dosyasını düzenleyin.

sudo nano conf/shiro.ini

Dosyada aşağıdaki satırları bulun.

[users]

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

Liste, kullanıcı adını, şifreyi ve kullanıcıların rollerini içerir. Şimdilik sadece admin ve kullanacağız user1. Parolasını değiştirin admin ve user1 bunları yorum yaparak diğer kullanıcıları devre dışı bırakın. Ayrıca kullanıcıların kullanıcı adlarını ve rollerini de değiştirebilirsiniz. Apache Shiro kullanıcıları ve rolleri hakkında daha fazla bilgi edinmek için Shiro yetkilendirme kılavuzunu okuyun .

Parolaları değiştirdikten sonra, kod bloğu böyle olacaktır.

[users]

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

Şimdi değişiklikleri uygulamak için Zeppelin'i yeniden başlatın.

sudo systemctl restart zeppelin

Kimlik doğrulamanın etkinleştirildiğini göreceksiniz ve Shiro yapılandırma dosyasında ayarlanan kullanıcı adını ve şifreyi kullanarak oturum açabileceksiniz.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun