Mentre Helix e filati sia fornire funzionalità per gestire le applicazioni distribuite, ci sono importanti differenze tra i due.
YARN fornisce principalmente funzionalità di gestione delle risorse attraverso un cluster di macchine mentre richiede alle applicazioni di scrivere la propria logica personalizzata per negoziare le risorse dal gestore risorse. D'altra parte, Helix fornisce un modo di gestire in modo dichiarativo lo stato delle applicazioni distribuite, liberando così le applicazioni dal dover eseguire un'implementazione personalizzata. Al momento, Helix non fornisce funzionalità di gestione delle risorse allo stesso modo di YARN. Quindi i due sistemi sono abbastanza complementari.
Come illustrazione, si supponga di disporre di un set di nodi e di voler avviare alcuni contenitori su di essi.
- Assegnare contenitori tra i nodi basati sull'utilizzo delle risorse
- contenitori di inizio,
- contenitore del monitor, se muoiono contenitori di riavvio
FILATO fornisce il quadro/macchina per ottenere il risultato. Una volta ottenuti i contenitori, è necessario implementare le seguenti funzionalità:
- Partizionamento e replica: è necessario distribuire le attività ai contenitori, eventualmente assegnare più attività a ciascun contenitore. Per la ridondanza è possibile scegliere di assegnare un'attività a più contenitori.
- Gestione stato: gestione dello stato del task
- Tolleranza di errore: in caso di guasto di un contenitore, è possibile scegliere di ridistribuire il lavoro tra i contenitori rimanenti o riavviare il contenitore in base ai requisiti SLA.
- Espansione cluster: è possibile avviare nuovi contenitori per gestire il carico di lavoro, quindi si desidera ridistribuire l'attività.
- Throttling: Durante tutte queste operazioni si potrebbe desiderare di limitare alcune operazioni come lo spostamento dei dati
Helix rende facile raggiungere le caratteristiche di cui sopra. In YARN è necessario scrivere l'application master per raggiungerli (Un esempio di tale implementazione è il master Application per hadoop riduci i lavori).
Helix è stato sviluppato su LinkedIn per gestire i sistemi di dati distribuiti nello spazio online/nearline. In questo spazio, una volta lanciato un container, gira per sempre fino a quando non si blocca. Quando un contenitore non funziona, le attività potrebbero essere ridistribuite tra i contenitori rimanenti.
YARN viene fornito con algoritmi di pianificazione delle risorse che consentono un utilizzo flessibile ed efficiente dell'hardware disponibile per attività di breve durata come la mappa di ridurre i lavori.
fonte
2013-05-10 14:48:10
Grazie per questa grande spiegazione !!! – Tobi
Ottima spiegazione davvero! –