CentOS 7 Üzerinde Apache Zeppelin Kurulumu

Apache Zeppelin, etkileşimli veri alımı, keşif, analiz ve görselleştirme için web tabanlı açık kaynaklı bir dizüstü bilgisayar ve ortak çalışma 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 CentOS 7 sunucusu örneği.
  • Bir sudo kullanıcısı .
  • Bir alan adı sunucuya işaret etti.

Bu eğitimde, zeppelin.example.comVultr ö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.

CentOS 7'yi 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 SE JDK RPM paketini indirin.

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"

İndirilen paketi yükleyin.

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

Java başarıyla yüklendiyse, sürümünü doğrulayabilmeniz gerekir.

java -version

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

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

Daha ileri gidebilmemiz için, JAVA_HOMEve JRE_HOMEortam değişkenlerini ayarlamamız gerekecek . Sisteminizdeki JAVA yürütülebilir dosyasının mutlak yolunu bulun.

readlink -f $(which java)

Benzer bir çıktı göreceksiniz.

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

Şimdi JAVA_HOMEve JRE_HOMEortam değişkenlerini Java dizininin yoluna göre ayarlayın .

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_profileDosyayı yürütün .

source ~/.bash_profile

Artık echo $JAVA_HOMEortam değişkeninin ayarlanıp ayarlanmadığını kontrol etmek için komutu çalıştırabilirsiniz .

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

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. Ayrıca Nginx web sunucusunu ters proxy olarak da yapılandıracağız.

Systemd hizmetini yapılandırma

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 adduser -d /opt/zeppelin -s /sbin/nologin 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ışıp çalışmadığını kontrol etmek için aşağıdakileri çalıştırabilirsiniz.

sudo systemctl status zeppelin

Ters Proxy'yi Yapılandırma

Varsayılan olarak, Zeppelin sunucusu localhostbağlantı noktasında dinler 8080. Bu öğreticide, uygulamaya standart HTTPve HTTPSbağlantı noktaları üzerinden erişilebilmesi için Nginx'i ters proxy olarak kullanacağız . Nginx'i, Let's Encrypt ücretsiz SSL CA ile oluşturulan SSL kullanacak şekilde de yapılandıracağız.

Nginx'i yükleyin.

sudo yum -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

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

sudo yum -y install certbot

Sertifikaları talep edebilmeniz için , güvenlik duvarı üzerinden port 80ve / 443veya standart HTTPve HTTPShizmetlere izin vermeniz gerekir .

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

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 /usr/share/nginx/html -d zeppelin.example.com

Oluşturulan sertifikaların depolanması muhtemeldir /etc/letsencrypt/live/zeppelin.example.com/. SSL sertifikası olarak fullchain.pemve ö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 süresinin dolması gerekiyorsa, sertifikaları otomatik olarak yeniler.

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

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

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

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, hiçbir 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>

falseAnonim 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 adminve kullanacağız user1. Parolasını değiştirin adminve user1bunları 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 şöyle görünmelidir.

[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örmelisiniz 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