Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Supervisor to system klient / serwer używany do sterowania wieloma procesami UNIX, a dokładniej procesami związanymi z projektem lub klientem. Na przykład możesz użyć opiekuna, aby spawnować i monitorować dowolną liczbę kolejek roboczych twojej aplikacji internetowej.
Składniki tego systemu to:
W tym samouczku zainstalujemy najbardziej aktualną wersję opiekuna, pokażemy, jak się odradzać i zarządzać programami supervisorctl
, a także skonfigurujemy interfejs internetowy do zarządzania naszymi programami.
Będziemy instalować superwizora easy_install
, funkcję setuptools Pythona.
Najpierw zaktualizuj listę lokalnych pakietów, a następnie zainstaluj Python setuptools
.
sudo apt-get update && sudo apt-get install python-setuptools
Teraz możemy zainstalować nadzorcę.
sudo easy_install supervisor
Po zakończeniu instalacji musimy wygenerować nasz plik konfiguracyjny. Utwórz folder o nazwie supervisor
wewnątrz /etc
.
sudo mkdir /etc/supervisor
A następnie wykonaj następujące czynności.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Jeśli nie jesteś zalogowany z root
użytkownikiem, możesz otrzymać Permission denied
błąd (nawet z sudo
). Wynika to z przekierowania. Aby temu zaradzić, zaloguj się jako root.
sudo su
Następnie możesz ponownie uruchomić polecenie.
echo_supervisord_conf > /etc/supervisor/supervisord.conf
Możesz teraz opuścić root
użytkownika z exit
poleceniem. echo_supervisord_conf
Komenda została dostarczona przez naszego instalacji administratora.
Otwórz /etc/supervisor/supervisord.conf
plik i sprawdź jego zawartość. Zauważysz, że ten plik konfiguracyjny jest zgodny ze INI
składnią i jest podzielony na sekcje (reprezentowane w nawiasach jak w [section-name]
).
Aby dodać programy, którymi ma zarządzać nadzorca, wystarczy utworzyć odpowiednie [program]
sekcje. Jednak, aby uniknąć bałaganu w głównym pliku konfiguracyjnym za każdym razem, gdy musimy dodać (lub zmienić) program, będziemy używać [include]
sekcji. Znajdź tę sekcję, odkomentuj ją, a następnie edytuj, aby wyglądała następująco.
[include]
files=conf.d/*.conf
Teraz dla każdego programu, który chcemy dodać, będziemy tworzyć .ini
plik w /etc/supervisor/conf.d/
katalogu. Utwórzmy ten folder.
sudo mkdir /etc/supervisor/conf.d
Jak wspomniano wcześniej, przełożony składa się z serwera i klientów, którzy się z nim łączą. Aby móc zarządzać programami i sterować nimi, musimy uruchomić serwer. W tym celu będziemy rejestrować serwer nadzorcy systemd
, aby serwer mógł zostać uruchomiony podczas uruchamiania systemu.
Aby to zrobić, utwórz plik o nazwie supervisord.service
w /etc/systemd/system
katalogu.
sudo touch /etc/systemd/system/supervisord.service
Dodaj następującą zawartość do pliku.
[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
Aktywuj usługę nadzoru.
sudo systemctl start supervisord.service
Tak długo, jak plik usługi znajduje się w /etc/systemd/system
katalogu, będzie on automatycznie uruchamiany podczas uruchamiania systemu.
Możesz sprawdzić status usługi.
systemctl status supervisord.service
Możesz także sprawdzić dzienniki.
sudo journalctl -u supervisord.service
Programy kontrolowane przez przełożonego są podawane przez różne [program]
sekcje konfiguracji. Dla każdego programu, którym chcemy zarządzać, utworzymy niezależny plik konfiguracyjny informujący o ścieżce wykonywalnej polecenia, wszelkich zmiennych środowiskowych, jak wykonać w przypadku wyłączenia.
Najpierw stwórzmy prosty skrypt, który rejestruje znacznik czasu. Utwórz plik o nazwie hello_supervisor.sh
(gdziekolwiek chcesz, będziemy odnosić się do pełnej ścieżki tego skryptu).
touch hello_supervisor.sh
Teraz włóż do niego następującą zawartość
#!/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
Teraz spraw, by był wykonywalny
chmod +x hello_supervisor.sh
W praktyce ten skrypt jest prawie bezużyteczny. Możemy go jednak użyć do zademonstrowania mocy przełożonego. Utwórz odpowiedni plik konfiguracyjny, wykonując następujące czynności.
sudo touch /etc/supervisor/conf.d/hello_supervisor.conf
Teraz włóż następującą zawartość do tego pliku.
[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
Uwaga: pamiętaj o zastąpieniu USER
swoją nazwą użytkownika.
Przejrzymy tę konfigurację krok po kroku.
[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
Po pierwsze, konfiguracja rozpoczyna się od zdefiniowania programu o nazwie hello_supervisor . Informuje również pełną ścieżkę do pliku wykonywalnego, który ma zostać uruchomiony.
autostart=true
Ten wiersz mówi, że ten program powinien zostać uruchomiony automatycznie po uruchomieniu administratora.
autorestart=true
Jeśli program zostanie zamknięty, z jakiegokolwiek powodu, ten wiersz informuje przełożonego, aby automatycznie wznowił proces.
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log
Linie te określają położenie pliku dziennika odpowiednio dla stderr
i stdout
.
Po zainstalowaniu i skonfigurowaniu nadzorcy jesteśmy w stanie zarządzać naszymi procesami.
Po dodaniu nowego programu powinniśmy uruchomić następujące dwa polecenia, aby poinformować serwer o ponownym odczytaniu plików konfiguracyjnych i zastosowaniu wszelkich zmian.
sudo supervisorctl reread
sudo supervisorctl update
Teraz uruchom supervisorctl
klienta.
sudo supervisorctl
Zostaniesz przywitany listą zarejestrowanych procesów. Zobaczysz proces wywołany hello_supervisor
ze RUNNING
statusem.
hello_supervisor RUNNING pid 6853, uptime 0:22:30
supervisor>
Wpisz help
listę dostępnych poleceń.
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
W skrócie, możemy start
, stop
i restart
programy, przekazując nazwę programu jako argument do odpowiedniego polecenia.
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>
Możemy również spojrzeć na wynik programu za pomocą tail
polecenia.
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
Do stderr
wyjścia możesz również użyć tail
.
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!
Wywołując status
polecenie, możesz wyświetlić status wszystkich zarejestrowanych programów.
Gdy skończysz, możesz wyjść.
supervisor> quit
Aby zezwolić na dostęp do serwera administratora, otwórz plik konfiguracyjny nadzoru i zlokalizuj [inet_http_server]
sekcję.
nano /etc/supervisor/supervisord.conf
Teraz zaktualizuj konfigurację tej sekcji za pomocą następujących.
[inet_http_server]
port=*:9001
username=your_username
password=your_password
Zastąp your_username
i your_password
podanymi poświadczeniami, zapisz zmiany i ponownie uruchom usługę nadzoru.
sudo systemctl restart supervisord.service
Pamiętaj, aby zezwolić na TCP
dostęp do portu 9001
zapory, a następnie dostęp http://{server-ip}:9001
z przeglądarki. Gdy zostaniesz o to poproszony, podaj swoje username
i password
. Możesz teraz kontrolować swoje procesy z sieci.
Zainstalowaliśmy najnowszą wersję superwizora, nauczyliśmy się konfigurować ją do automatycznego uruchamiania systemu za pomocą systemd, a także zapoznaliśmy się z podstawową obsługą supervisorctl
. Bardziej zaawansowaną konfigurację i przypadki użycia można znaleźć w oficjalnej dokumentacji nadzoru .
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.