2013-05-06 13 views
12

Qual è la differenza tra Apache Helix e Hadoop YARN (MRv2). Qualcuno ha esperienza con entrambe le tecnologie? Qualcuno può spiegarmi i vantaggi/svantaggi di Helix su YARN e perché i ragazzi di LinkedIn hanno sviluppato la propria gestione del cluster invece di utilizzare YARN?Apache Helix vs YARN

Grazie in anticipo Tobi

risposta

36

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.

  1. Assegnare contenitori tra i nodi basati sull'utilizzo delle risorse
  2. contenitori di inizio,
  3. 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à:

  1. 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.
  2. Gestione stato: gestione dello stato del task
  3. 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.
  4. Espansione cluster: è possibile avviare nuovi contenitori per gestire il carico di lavoro, quindi si desidera ridistribuire l'attività.
  5. 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.

+1

Grazie per questa grande spiegazione !!! – Tobi

+0

Ottima spiegazione davvero! –