Ho letto che la copia della directory dei dati funzionerà. Ma questa è una combinazione di log e istantanee. Come fanno le persone a fare il backup di un'infrastruttura di un guardiano dello zoo? Esportare ? Discarica? Script personalizzato? Quali sono le migliori pratiche?Come si fa a fare il backup di Zookeeper?
risposta
Stiamo modificando lo script zkConfig.py che è un progetto contribuito durante l'installazione di zookeeper. Ti permette di interagire con lo zookeeper attraverso uno script python.
Stiamo modificando gli script per scaricare facilmente e salvare l'intero contenuto ogni notte e quindi eseguire il backup dei file. Anche se sarei curioso di ascoltare anche le soluzioni di altre persone.
Zookeeper scrive un'istantanea una volta stabilito che ha abbastanza transazioni e ogni nuova istantanea sostituisce completamente quelle più vecchie. Quindi l'ultima istantanea + il log delle transazioni dal momento dell'istantanea è sufficiente per ripristinare lo stato corrente. Per semplificare i calcoli, è possibile semplicemente eseguire il backup delle ultime 3 istantanee (in caso di danneggiamento dell'ultimo snap) e dei registri delle transazioni dal timestamp corrispondente alla prima istantanea. I link sottostanti hanno alcuni dettagli in più.
A partire dalla versione' 3.4.0' è possibile utilizzare i '' direttive di configurazione autopurge.snapRetainCount' e autopurge.purgeInterval' per mantenere puliti i tuoi snapshot e registri delle transazioni Ora ti serve solo un cronjob che faccia un backup della directory dei dati ('dataDir'). – czerasz
Ho appena avuto la stessa esigenza e ha scoperto che la maggior parte delle opzioni disponibili o non funzionano o richiedono un sacco di personalizzazione.
L'opzione migliore che ho trovato è Guano, che è una piccola app Java che visita ogni nodo dell'albero ricorsivamente a partire dal nodo dichiarato e lo scarica in una struttura di directory corrispondente, così si finisce con una struttura di directory di file semplici è strutturato come l'albero reale.
È anche possibile ripristinare questi backup chiedendogli di eseguire il ripristino in modo ricorsivo da qualsiasi punto in quella struttura. Penso che sia abbastanza bello sia per i backup che per l'esplorazione. Per esempio ho usato immediatamente ack dalla root per trovare tutti i file con una voce a cui tenevo.
Questo è facile da estendere in un backup corretto semplicemente inserendolo come cron job e aggiungendo un passaggio zip per comprimere l'intero backup in un archivio e gestire qualsiasi rotazione necessaria.
Ci sono alcuni aspetti negativi per lo strumento:
- Così com'è su Github l'originale non viene compilato a causa mancano pochi importazioni. Diverse persone hanno reso PR o fork che risolvono questo problema come https://github.com/feldoh/guano che è la mia forchetta in cui ho anche migliorato i documenti. Ora ho anche precompilato il jar e spingo i binari in https://bintray.com/feldoh/Guano/guano.
- Esegue solo il dump dei dati, il che è utile per l'esplorazione, ma perde metadati come il mTime o la versione dei dati. Effettivamente un ripristino probabilmente dovrebbe essere considerato come un aggiornamento, quindi non posso dire che sia davvero una brutta cosa, ma non è un vero ripristino puntuale.
NB: Ho creato il mio editor Zookeeper in quanto ho riscontrato problemi simili trovando uno di quelli che funzionavano e soddisfacevano le mie esigenze. A seconda di quando leggi questo https://github.com/feldoh/JZookeeperEdit potresti avere anche una funzione di esportazione. I numeri 13/14 coprono questa funzione pianificata.
Netflix ha fornito una soluzione per questo chiamato exhibitor. È un co-processo ZooKeeper "per il monitoraggio di istanze, backup/ripristino, pulizia e visualizzazione."
Netflix Exhibitor è un supervisore per Zookeeper e buono per mantenere l'ensemble, MA non gestisce gli snapshot backup - solo registri delle transazioni - in questo modo è possibile ripristinare le transazioni solo una alla volta, non l'intero dato in una volta.Non è una soluzione adatta per l'archiviazione dei dati zk con molti nodi persistenti (non effimeri). Vedere qui: https: // mail-archives.apache.org/mod_mbox/zookeeper-user/201307.mbox/%[email protected]%3E –
- 1. MongoDB: come fare il backup di MongoDB
- 2. matplotlib: come si fa a fare clic su shift?
- 3. Come si legge il log delle transazioni di Zookeeper?
- 4. Come fa google a fare il barrel roll?
- 5. Backup dati Android 2.2: come eseguire il backup di DefaultSharedPreferences?
- 6. Come si fa a girare un UIBarButtonItem?
- 7. Come si fa a creare una bolla?
- 8. Come si esegue il backup di un pacchetto SalesForce?
- 9. come posso fare un backup sicuro di un enorme database?
- 10. Come si fa a far lampeggiare un'immagine?
- 11. Come si fa a fare suggerimento presentarsi più a lungo in IE
- 12. Come si fa a clonare un BufferedImage
- 13. Se si utilizza Apache ZooKeeper, come si usa?
- 14. Come fa NSValue a fare la sua magia?
- 15. come si fa l'impaginazione usando il mongoengine?
- 16. come si fa a sfilacciare usando nodemon?
- 17. Python: come si fa a fermare il numpy dal multithreading?
- 18. Come si fa a rendere il test non noioso?
- 19. Come si fa a far funzionare il profiler Python?
- 20. cosa fa "<%:" fare?
- 21. Cosa fa? ... : ... fare?
- 22. come si fa a stampare tavolo knitr
- 23. VB.NET - Cosa fa ": =" fare?
- 24. Come fa il "super" di Python a fare la cosa giusta?
- 25. Cosa fa? fare in Elixir
- 26. fa minHeight fare qualcosa?
- 27. Usando gruntjs, come si fa a fare attenzione ai cambiamenti nei file .coffee?
- 28. Cosa fa System.Reflection.Missing.Value fare?
- 29. Come si fa a creare modelli di progetto IntelliJ personalizzati?
- 30. ZooKeeper - aggiunta di peer dinamicamente?
fa zkConfig.py ancora esistere? Googling non sembra alzare nulla su di esso. –