2014-12-10 15 views
9

Sto provando a pensare a modi per ridimensionare la configurazione di elasticsearch. Le persone utilizzano più client nodo su un cluster Elasticsearch e li mettono davanti a un bilanciamento del carico/proxy inverso come Nginx. Altre idee sarebbero grandiose.Uso di client con più nodi in elasticsearch

+0

si potrebbe condividere alcune informazioni sulla vostra attuale architettura ? le idee su come ridimensionare dipenderanno molto dal tuo modo di configurare le cose al momento. –

+0

@JohnPetrone Al momento disponiamo di un'installazione davvero semplice che ha come 20 nodi dati. Esaminare le diverse topologie per aiutarci a ridimensionare. –

risposta

24

Così mi piacerebbe iniziare con ri-tappatura i tre diversi tipi di nodi è possibile configurare in elasticsearch:

  • dati di nodo - node.data impostata su true e node.master impostata su false - questi sono i nodi principali di un cluster elasticsearch, in cui sono archiviati i dati .

  • Dedicato nodo principale - node.data è impostato su false e node.master è impostato su true - questi sono responsabili della gestione dello stato del cluster.

  • nodo client - node.data è impostato su false e node.master è impostato su
    falso - queste rispondono alle richieste di dati del cliente, interrogazione per ottenere risultati
    dai nodi di dati e la raccolta dei dati per tornare alla cliente.

Dividendo le funzioni in 3 diversi tipi di nodi di base si ha un gran grado di granularità e controllo nella gestione della scala del cluster. Poiché ogni tipo di nodo gestisce un insieme di responsabilità più isolato, è possibile sintonizzarsi meglio su ciascuna e adattarlo in modo appropriato.

Per i nodi di dati, è una funzione di gestione dell'indicizzazione e delle risposte alle query, oltre a garantire di disporre di spazio di archiviazione sufficiente per ciascun nodo. Dovrai monitorare l'utilizzo della memoria e il thru-put del disco per ogni nodo, insieme all'utilizzo della CPU e della memoria. Si desidera evitare configurazioni in cui si esaurisce il disco o saturare il thru-put del disco, mentre si dispone ancora di una quantità eccessiva di memoria e cpu, o il contrario di memoria e cpu max, ma si dispone di un lotto di disco disponibile. Il modo migliore per determinarlo è attraverso l'analisi comparativa delle attività tipiche di indicizzazione e query.

Per i nodi master, si dovrebbe sempre avere almeno 3 e dovrebbe sempre avere un numero dispari. Il quorum deve essere impostato su N/2 + 1 dove N è il numero di nodi principali. In questo modo non ti imbatti in problemi di cervello diviso con il tuo cluster. I nodi master dedicati tendono a non essere pesantemente caricati, quindi possono essere piuttosto piccoli.

Per i nodi client è possibile posizionarli dietro un bilanciamento del carico o utilizzare le voci DNS per puntare a questi. Sono facilmente scalabili verso l'alto e verso il basso aggiungendo semplicemente di più al cluster e dovrebbero essere aggiunti sia per la ridondanza che per la scalabilità dell'utilizzo della CPU e della memoria. Non serve molto per un sacco di dischi.

Non importa quale sia la configurazione, oltre al benchmarking, probabilmente carichi in anticipo, consiglio vivamente il monitoraggio di cpu, memoria e disco - ES è facile da avviare, ma è necessario guardarlo mentre si scala in dimensioni maggiori numero di transazioni e più nodi. Occuparsi di un cluster di stato giallo o rosso a causa di errori del nodo dalla memoria o esaurimento del disco non è molto divertente.

mi piacerebbe prendere una stretta di lettura di questo articolo per alcuni retroscena:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-node.html

Inoltre questa serie di articoli:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/distributed-cluster.html

+0

Sembra che il dominio 'elasticsearch.org' non sia attivo (ma potrei accedere ai tuoi collegamenti sostituendo' elastic.co'). –

+0

Con V5 di Elastic Stack, i nodi hanno cambiato in cui ora abbiamo il nodo di importazione. Inoltre, il nodo Tribe ha sostituito il nodo Client. –

Problemi correlati