Tutorial di ZooKeeper: cos'è Architecnologia di Apache ZooKeeper
Cos'è un sistema distribuito?
Un'applicazione distribuita è un'applicazione che può essere eseguita su più sistemi in una rete. Viene eseguita simultaneamente coordinandosi per completare un determinato compito. Questi compiti possono richiedere molte ore per essere completati da qualsiasi applicazione non distribuita.
Cos'è Zookeeper?
Custode dello zoo Apacheache è un servizio di coordinamento distribuito open source che aiuta a gestire un ampio set di host. La gestione e il coordinamento in un ambiente distribuito sono complicati. Zookeeper automatizza questo processo e consente agli sviluppatori di concentrarsi sulla creazione di funzionalità del software anziché preoccuparsi della sua natura distribuita.
Zookeeper ti aiuta a mantenere le informazioni di configurazione, denominazione, servizi di gruppo per applicazioni distribuite. Implementa diversi protocolli sul cluster in modo che l'applicazione non debba implementarsi da sola. Fornisce un'unica visualizzazione coerente di più macchine.
Perché Apache Zookeeper?
Ecco le ragioni importanti dietro la popolarità del guardiano dello zoo:
- Consente la mutua esclusione e la cooperazione tra i processi del server
- Garantisce che l'applicazione venga eseguita in modo coerente.
- Il processo di transazione non viene mai completato parzialmente. Gli viene assegnato lo stato di Successo o Fallimento. Lo stato distribuito si può sostenere, ma non è mai sbagliato
- Indipendentemente dal server a cui si connette, un client sarà in grado di vedere la stessa visualizzazione del servizio
- Ti aiuta a codificare i dati secondo l'insieme specifico di regole
- Aiuta a mantenere uno spazio dei nomi gerarchico standard simile a file e directory
- Computer, che funzionano come un unico sistema che può essere connesso localmente o geograficamente
- Permette di unirsi/lasciare un nodo in un cluster e lo stato del nodo in tempo reale
- Puoi aumentare le prestazioni distribuendo più macchine
- Ti consente di eleggere un nodo come leader per un migliore coordinamento
- ZooKeeper funziona velocemente con carichi di lavoro in cui le letture dei dati sono più comuni delle scritture
Custode dello zoo Architecnologia: come funziona?
Ecco una breve spiegazione in merito Apache Architettura del guardiano dello zoo:
- Zookeeper segue un client-server Architectura
- Tutti i sistemi memorizzano una copia dei dati
- I leader vengono eletti all'avvio
Server: Il server invia una conferma quando un client si connette. Nel caso in cui non si riceva risposta dal server connesso, il client reindirizza automaticamente il messaggio a un altro server.
.: Il client è uno dei nodi nel cluster di applicazioni distribuite. Ti aiuta ad accedere alle informazioni dal server. Ogni client invia un messaggio al server a intervalli regolari che aiuta il server a sapere che il client è vivo.
Capo: Uno dei server è designato Leader. Fornisce tutte le informazioni ai client e conferma che il server è attivo. Eseguirà il ripristino automatico in caso di guasto di uno qualsiasi dei nodi collegati.
Seguace: Il nodo server che segue le istruzioni del leader è chiamato follower.
- Le richieste di lettura del client vengono gestite dal server Zookeeper connesso in modo corrispondente
- Le richieste di scrittura del client vengono gestite dal leader dello Zookeeper.
Complesso/Cluster: Gruppo di server Zookeeper chiamato ensemble o a ClusterÈ possibile utilizzare l'infrastruttura ZooKeeper in modalità cluster per avere il sistema al valore ottimale quando si esegue Apache.
Interfaccia utente Web di ZooKeeper: Se desideri lavorare con la gestione delle risorse ZooKeeper, devi utilizzare WebUI. Consente di lavorare con ZooKeeper utilizzando l'interfaccia utente web, invece di utilizzare la riga di comando. Offre una comunicazione rapida ed efficace con l'applicazione ZooKeeper.
Il modello dei dati del guardiano dello zoo (ZDM)
Ora in questo tutorial di ZooKeeper impariamo a conoscere il modello di dati di Zookeeper. La figura seguente spiega il modello dati Apache Zookeeper:
- Il modello dati zookeeper segue uno spazio dei nomi gerarchico in cui ciascun nodo è chiamato ZNode. Un nodo è un sistema in cui viene eseguito il cluster.
- Ogni ZNode ha dati. Può avere o meno figli
- Percorsi degli ZNodi:
- Canonico, separato da slash e assoluto
- Non utilizzare alcun riferimento relativo
- I nomi possono contenere caratteri Unicode
- ZNode mantiene la struttura delle statistiche e il numero di versione per le modifiche dei dati.
Tipi di nodi Zookeeper
Esistono tre tipi di Znode:
Persistenza znode: questo tipo di znode è attivo anche dopo che il client che ha creato quello specifico znode viene disconnesso. Per impostazione predefinita, in zookeeper, tutti i nodi sono persistenti se non è specificato.
Effimero znode: questo tipo di znode zookeeper è vivo finché il client è vivo. Pertanto, quando il client viene disconnesso dallo zookeeper, verrà eliminato anche lui. Inoltre, ai nodi effimeri non è consentito avere figli.
Sequenziale znode: gli znode sequenziali possono essere effimeri o persistenti. Quindi, quando un nuovo znode viene creato come znode sequenziale. È possibile assegnare il percorso dello znode allegando un numero di sequenza di 10 cifre al nome originale.
ZDM-Orologi
Zookeeper, un evento watch è un trigger una tantum inviato al client che ha impostato il watch. Si è verificato quando i dati di quel watch cambiano. Il watch ZDM consente ai client di ricevere notifiche quando cambia lo znode. Le operazioni di lettura ZDM come getData(), getChidleren(), hanno l'opzione di impostare un watch.
Gli orologi sono ordinati, l'ordine degli eventi di visualizzazione corrisponde all'ordine degli aggiornamenti. Un client sarà in grado di vedere un evento di controllo per znode prima di vedere i nuovi dati che corrispondono a quello znode.
ZDM-Elenco controllo accessi
Zookeeper utilizza gli ACL per controllare l'accesso ai suoi znode. L'ACL è composto da una coppia di (Schema: id, permesso)
Costruisci schemi ACL:
mondo: ha un unico ID, chiunque
auth: non utilizzare alcun ID, rappresenta qualsiasi utente autenticato
digest: usa un nome utente: password
host: consente di utilizzare il nome host del client come identità ID ACL
IP: utilizza l'indirizzo IP dell'host client come identità ID ACL
Autorizzazioni ACL:
- CREA
- LEGGI
- SCRIVERE
- DELETE
- ADMIN
Ex (IP: 192.168.0.0/16, LEGGI)
Lo ZKS – Stati della sessione e durata
- Prima di eseguire qualsiasi richiesta, è importante che il client stabilisca una sessione con il servizio
- Tutte le operazioni inviate dai client al servizio vengono automaticamente associate a una sessione
- Il client può connettersi a qualsiasi server nel cluster. Ma si connetterà a un solo server
- La sessione fornisce “garanzie dell'ordine”. Le richieste nella sessione vengono eseguite in ordine FIFO
- Gli stati principali di una sessione sono 1) Connesso, 2) Connesso 3) Chiuso 4) Non connesso.
Come installare ZooKeeper
Passo 1) Clicca su Continua per iscriverti
Vai a questo link e fai clic su "Continua ad iscriverti"
Passo 2) Accetta i termini e le condizioni
Nella pagina successiva, Accetta il contratto di licenza
Passo 3) Messaggio di ringraziamento mostrato
Verrà visualizzato il seguente messaggio
Passo 4) Fare clic su Continua per configurare
Aggiorna la pagina dopo 5 minuti e procedi con la configurazione
Passo 5) Fare clic su "Continua con l'avvio"
Nella schermata successiva, avvia ZooKeeper
Passo 6) Congratulazioni!
Hai fatto!
Applicazioni Apache ZooKeeper
Apache Zookeeper è utilizzato per i seguenti scopi:
- Gestire la configurazione
- Servizi di denominazione
- La scelta del leader
- Accodare i messaggi
- Gestione del sistema di notifiche
- Synccronizzazione
- distribuito Cluster Management
Aziende che utilizzano Zookeeper
- Yahoo
- eBay
- Netflix
- Zynga
- Nutanix
Svantaggi dell'utilizzo di Zookeeper
- Potrebbe verificarsi una perdita di dati se si aggiungono nuovi server Zookeeper
- Nessuna migrazione consentita per gli utenti
- Non offrire supporto per il posizionamento e la consapevolezza del Rack
- Zookeeper non ti consente di ridurre il numero di pod per evitare perdite accidentali di dati
- Non è possibile passare dal servizio alla rete host senza una reinstallazione completa quando il servizio viene distribuito in una rete virtuale
- Il servizio non supporta la modifica dei requisiti di volume una volta terminata la distribuzione iniziale
- I nodi coinvolti sono numerosi, quindi potrebbe esserci più di un punto di errore
- I messaggi possono andare persi nella rete di comunicazione, che richiede un software speciale per recuperarli nuovamente
Sommario
- Un'applicazione distribuita è un'applicazione che può essere eseguita su più sistemi in una rete
- Apache Zookeeper è un servizio di coordinamento distribuito open source che ti aiuta a gestire un ampio set di host
- Consente la mutua esclusione e la cooperazione tra i processi del server
- Server, cliente, leader, follower, gruppo/Cluster, ZooKeeper WebUI sono componenti importanti dello zookeeper
- Tre tipi di Znode sono Persistenza, Effimero e sequenziale
- L'orologio ZDM è un trigger una tantum che viene inviato al client che ha impostato l'orologio. Si è verificato quando i dati di quell'orologio cambiano
- Zookeeper Hadoop utilizza gli ACL per controllare l'accesso ai suoi znode
- Gestire la configurazione, Denominare i servizi, Selezionare il leader, Accodare i messaggi, Gestire il sistema di notifiche, Synccronizzazione, Distribuito Cluster Gestione, ecc.
- Yahoo, Facebook, eBay, Twitter, Netflix ci sono alcune aziende note che utilizzano Zookeeper
- Lo svantaggio principale dello strumento è che potrebbero verificarsi perdite se si aggiungono nuovi server Zookeeper