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
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.
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.
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_HOME
ayarlanı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.
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 localhost
yalnı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.
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
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.
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 .
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.
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
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.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
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, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek 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, 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!
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.
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