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ş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.
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.
CentOS 7'yi 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 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_HOME
ve JRE_HOME
ortam 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_HOME
ve JRE_HOME
ortam 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_profile
Dosyayı yürütün .
source ~/.bash_profile
Artık echo $JAVA_HOME
ortam 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
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. Ayrıca Nginx web sunucusunu 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 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
Varsayılan olarak, Zeppelin sunucusu localhost
bağlantı noktasında dinler 8080
. Bu öğreticide, uygulamaya standart HTTP
ve HTTPS
bağ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 80
ve / 443
veya standart HTTP
ve HTTPS
hizmetlere 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.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 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.
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 şö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.
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