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
Süpervizör, bir dizi UNIX işlemini, daha spesifik olarak bir proje veya müşteri ile ilgili işlemleri kontrol etmek için kullanılan bir istemci / sunucu sistemidir. Örneğin, web uygulamanızın gelişigüzel sayıda çalışan kuyruğunu oluşturmak ve izlemek için amir kullanabilirsiniz.
Bu sistemin bileşenleri:
Bu derste, süpervizörün en güncel sürümünü kuracağız, programların nasıl oluşturulacağını ve yönetileceğini göstereceğiz ve programlarımızı supervisorctl
yönetmek için bir web arayüzü yapılandıracağız.
easy_install
Python'un kurulum araçlarının bir özelliği aracılığıyla süpervizör kuruyoruz .
İlk olarak, yerel paketler listenizi güncelleyin ve ardından python yükleyin setuptools
.
sudo apt-get update && sudo apt-get install python-setuptools
Şimdi süpervizörü kurabiliriz.
sudo easy_install supervisor
Yükleme tamamlandığında, yapılandırma dosyamızı oluşturmalıyız. supervisor
İçinde bir klasör oluşturun /etc
.
sudo mkdir /etc/supervisor
Ve sonra aşağıdakileri yürütün.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
root
Kullanıcı ile oturum açmadıysanız, bir Permission denied
hata alabilirsiniz (ile bile sudo
). Bunun nedeni yönlendirme. Bunun üstesinden gelmek için root olarak giriş yapın.
sudo su
Sonra komutu tekrar çalıştırabilirsiniz.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Artık root
kullanıcıyı exit
komutla bırakabilirsiniz . echo_supervisord_conf
Komut bizim gözetmen kurulumu tarafından sağlandı.
/etc/supervisor/supervisord.conf
Dosyayı açın ve içeriğini kontrol edin. Bu yapılandırma dosyasının INI
sözdizimine uygun olduğunu ve bölümlere ayrıldığını (köşeli parantez içinde olduğu gibi temsil eder [section-name]
) not edeceksiniz .
Süpervizör tarafından yönetilecek programlar eklemek için sadece uygun [program]
bölümleri oluşturmanız gerekir . Ancak, her program eklemek (veya değiştirmek) gerektiğinde ana yapılandırma dosyasıyla uğraşmaktan kaçınmak için [include]
bölümü kullanacağız . Bu bölümü bulun, uncomment ve ardından aşağıdaki gibi görünecek şekilde düzenleyin.
[include]
files=conf.d/*.conf
Şimdi eklemek istediğimiz her program .ini
için /etc/supervisor/conf.d/
dizinde bir dosya oluşturacağız . Bu klasörü oluşturalım.
sudo mkdir /etc/supervisor/conf.d
Daha önce belirtildiği gibi, süpervizör bir sunucu ve ona bağlanan istemcilerden oluşur. Programları yönetebilmek ve kontrol edebilmek için sunucuyu başlatmamız gerekiyor. Bunun systemd
için sunucunun sistem başlangıcında başlatılmasını sağlamak üzere yönetici sunucuyu kaydettireceğiz .
Bunu yapmak için, adlı bir dosya oluşturmak supervisord.service
içinde /etc/systemd/system
dizine.
sudo touch /etc/systemd/system/supervisord.service
Aşağıdaki içeriği dosyaya ekleyin.
[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target
[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
Alias=supervisord.service
Süpervizör servisini etkinleştirin.
sudo systemctl start supervisord.service
Hizmet dosyası /etc/systemd/system
dizinde bulunduğu sürece , sistem başlatıldığında otomatik olarak başlatılır.
Hizmetin durumunu kontrol edebilirsiniz.
systemctl status supervisord.service
Ayrıca günlükleri kontrol edebilirsiniz.
sudo journalctl -u supervisord.service
Süpervizör tarafından kontrol edilen programlar [program]
konfigürasyondaki farklı bölümler tarafından verilir . Yönetmek istediğimiz her program için, komut yürütülebilir yolunu, çevresel değişkenleri, kapatma durumunda nasıl gerçekleştirileceğini bildiren bağımsız bir yapılandırma dosyası oluşturacağız.
İlk olarak, zaman damgasını kaydeden basit bir komut dosyası oluşturalım. Adlı bir dosya oluşturun hello_supervisor.sh
(dilediğiniz her yerde bu komut dosyasının tam yoluna başvuruyoruz).
touch hello_supervisor.sh
Şimdi, aşağıdaki içeriği içine koyun
#!/bin/bash
while true
do
# Echo current timestamp to stdout
echo Hello Supervisor: `date`
# Echo 'error!' to stderr
echo An error ocurred at `date`! >&2
sleep 1
done
Şimdi çalıştırılabilir yapın
chmod +x hello_supervisor.sh
Pratik anlamda bu senaryo neredeyse işe yaramaz. Ancak bunu amirinin gücünü göstermek için kullanabiliriz. Aşağıdakileri çalıştırarak ilgili yapılandırma dosyasını oluşturun.
sudo touch /etc/supervisor/conf.d/hello_supervisor.conf
Şimdi aşağıdaki içeriği bu dosyaya yerleştirin.
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
Not: Kullanıcı adınızla değiştirdiğinizden emin olun USER
.
Bu yapılandırmayı adım adım inceleyeceğiz.
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
İlk olarak, yapılandırma hello_supervisor adında bir program tanımlayarak başlar . Ayrıca çalıştırılacak yürütülebilir dosyanın tam yolunu bildirir.
autostart=true
Bu satır, süpervizör başlatıldığında bu programın otomatik olarak başlatılması gerektiğini belirtir.
autorestart=true
Program herhangi bir nedenle kapanırsa, bu satır süpervizöre işlemi otomatik olarak yeniden başlatmasını bildirir.
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
Bu satırlar sırasıyla stderr
ve için günlük dosyası konumunu tanımlar stdout
.
Artık süpervizörü kurup yapılandırdığımıza göre süreçlerimizi yönetebiliyoruz.
Yeni bir program ekledikten sonra, sunucuya yapılandırma dosyalarını yeniden okuma ve değişiklikleri uygulama konusunda bilgilendirmek için aşağıdaki iki komutu çalıştırmalıyız.
sudo supervisorctl reread
sudo supervisorctl update
Şimdi supervisorctl
istemciyi çalıştırın .
sudo supervisorctl
Kayıtlı işlemlerin bir listesi ile karşılaşacaksınız. Durumu hello_supervisor
olan bir işlem göreceksiniz RUNNING
.
hello_supervisor RUNNING pid 6853, uptime 0:22:30
supervisor>
Kullanılabilir help
komutların bir listesini yazın.
supervisor> help
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version
Özetle, biz start
, stop
ve restart
ilgili komuta bağımsız değişken olarak programın adını geçirerek programları.
supervisor> stop hello_supervisor
hello_supervisor: stopped
supervisor> start hello_supervisor
hello_supervisor: started
supervisor> restart hello_supervisor
hello_supervisor: stopped
hello_supervisor: started
supervisor>
tail
Komut ile program çıktısına da bakabiliriz .
supervisor> tail hello_supervisor
Hello Supervisor: Mon Sep 25 19:27:29 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:30 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:31 UTC 2017
İçin stderr
çıkış kullanabileceğiniz tail
kuyu olarak.
supervisor> tail hello_supervisor stderr
An error ocurred at Mon Sep 25 19:31:12 UTC 2017!
An error ocurred at Mon Sep 25 19:31:13 UTC 2017!
An error ocurred at Mon Sep 25 19:31:14 UTC 2017!
status
Komutu çağırarak, kayıtlı tüm programların durumunu görüntüleyebilirsiniz.
İşiniz bittiğinde bırakabilirsiniz.
supervisor> quit
Supervisord web sunucusuna erişime izin vermek için supervisord yapılandırma dosyasını açın ve [inet_http_server]
bölümü bulun .
nano /etc/supervisor/supervisord.conf
Şimdi bu bölümün yapılandırmasını aşağıdakilerle güncelleyin.
[inet_http_server]
port=*:9001
username=your_username
password=your_password
Değiştir your_username
ve your_password
sizin değişiklik ve yeniden başlatma supervisord hizmeti tasarrufu, istediğiniz kimlik bilgileriyle.
sudo systemctl restart supervisord.service
Güvenlik duvarınızdaki TCP
bağlantı noktasına 9001
erişime ve ardından http://{server-ip}:9001
tarayıcınızdan erişime izin vermeyi unutmayın . Sorulduğunda, username
ve öğenizi sağlayın password
. Artık süreçlerinizi web'den kontrol edebilirsiniz.
Süpervizörün en güncel sürümünü yükledik, sistemd ile sistem otomatik başlatma için nasıl yapılandırılacağını öğrendik ve temel kullanımını inceledik supervisorctl
. Daha gelişmiş yapılandırma ve kullanım durumları için resmi gözetim belgelerine başvurabilirsiniz .
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