2014-10-27 24 views
16

Può nodi 'master' Apache Mesos essere co-ubicato sulla stessa macchina Mesos 'slave' nodi? Allo stesso modo (per l'alta disponibilità (HA) distribuisce), può nodi Apache Zookeeper utilizzati in Mesos 'master' elezione essere implementato sulle stesse macchine come Mesos 'slave' nodi?I nodi 'master' e 'slave' di Mesos possono essere distribuiti sulle stesse macchine?

Mesos raccomanda essere usati 3 'maestri' per HA dispiega, e Zookeeper raccomanda 5 nodi essere utilizzati per il suo sistema elettorale quorum. Sarebbe bello avere questi servizi in esecuzione lungo i processi "slave" di Mesos, invece di affidare 8 macchine a compiti effettivamente "non produttivi".

Se una tale impostazione è fattibile, quali sono i vantaggi/svantaggi di una tale impostazione?

Grazie!

risposta

30

È sicuramente possibile eseguire un master, slave, e il processo di zk tutti sullo stesso nodo. È anche possibile eseguire più processi master e slave sullo stesso nodo, a patto di dare ad ognuno porti uniche, ma che è utile solo per un cluster di test.

In genere si consiglia di eseguire ZK sugli stessi nodi dei master, ma se si dispone di ZK aggiuntivi, è certamente possibile eseguirli su slave, o combinare come si vede, purché tutti i master/slave I nodi/framework possono raggiungere i nodi ZK e tutti gli slave possono raggiungere i master.

Per un cluster più piccolo (< 10 nodi) potrebbe avere senso eseguire un processo slave su ciascun master, soprattutto perché i master in standby non faranno molto. Anche un master attivo per un cluster piccolo utilizza solo una piccola quantità di CPU, memoria e risorse di rete. Assicurati di aggiustare le risorse su quel slave per tenere conto dell'utilizzo delle risorse del master.

Una volta che il cluster diventa più grande (in particolare> 100 nodi) il traffico di rete da/verso il master e l'utilizzo della CPU/memoria diventano abbastanza significativi da non voler eseguire uno slave mesos sullo stesso nodo di Il capo. Dovrebbe essere opportuno co-localizzare ZK con il tuo master anche su larga scala.

Non hai chiesto esplicitamente, ma parlerò anche di dove eseguire i tuoi programmi di pianificazione (ad esempio Spark, Marathon o Chronos). Questi potrebbero essere co-localizzati con uno qualsiasi degli altri componenti, ma hanno solo bisogno di essere in grado di raggiungere i nodi master e zk, poiché tutte le comunicazioni con gli slave passano attraverso il master. Alcuni clienti eseguono gli scheduler sui nodi master, alcuni li eseguono su nodi periferici (quindi gli utenti non hanno accesso agli slave) e altri usano metatrama come Marathon per eseguire altri scheduler su slave come task Mesos.