2015-07-17 26 views
7

come pagina GitHub di tez dice, Tez è molto semplice e il suo cuore ha due soli componenti:Come wordCount mapRiduce lavori, eseguito su cluster di filati hadoop con apache tez?

  1. Il motore gasdotto di elaborazione dati, e

  2. un maestro per il trattamento dell'informazione applicazione, dove-by si può mettere insieme arbitrario di elaborazione dati 'compiti' sopra descritta in una task-DAG

Bene la mia prima domanda è, come esistente MapReduce lavori come wordcount che esiste in tez-examples.jar, convertito in task-DAG? dove? o loro non ...?

e il mio secondo e più importante domanda è su questa parte:

'compito' Ogni nel tez ha la seguente:

  1. ingresso di consumare coppie chiave/valore da.
  2. Processore per elaborarli.
  3. Output per raccogliere le coppie chiave/valore elaborate.

Chi è responsabile della suddivisione dei dati di input tra i task tez? È il codice che l'utente fornisce o è Yarn (il gestore delle risorse) o anche il tez stesso?

La domanda è la stessa per la fase di uscita. Grazie in anticipo

risposta

3

Per rispondere alla tua prima domanda sulla conversione di posti di lavoro MapReduce per Tez DAG:

Qualsiasi lavoro MapReduce può essere pensato un unico DAG con 2 vertici (stadi). Il primo vertice è la fase Mappa ed è collegato a un vertice a valle Riduce tramite un bordo casuale.

Ci sono 2 modi in cui i lavori MR possono essere eseguiti su Tez:

  1. Un approccio è quello di scrivere un nativo DAG 2 stadi utilizzando direttamente le API Tez. Questo è ciò che è attualmente presente in tez-esempi.
  2. Il secondo è utilizzare le API MapReduce e utilizzare la modalità filo-tez. In questo scenario, c'è un livello che intercetta l'invio di MR Job e invece di usare MR, traduce il lavoro MR in un DAG Tez a due stadi ed esegue il DAG sul runtime Tez.

Per le domande relative di gestione dei dati che si hanno:

L'utente fornisce la logica sulla comprensione dei dati da leggere e come dividere esso. Tez quindi prende ogni divisione di dati e si assume la responsabilità di assegnare una divisione o un insieme di suddivisioni a un dato compito.

Il framework Tez controlla quindi la generazione e il movimento di dati, ovvero dove generare i dati tra i passaggi intermedi e come spostare i dati tra 2 vertici/fasi. Tuttavia, non controlla la logica di contenuto/struttura dei dati, partizionamento o serializzazione sottostante fornita dai plugin utente.

Quanto sopra è solo una vista di alto livello con intricatezze aggiuntive. Otterrete risposte più dettagliate inviando domande specifiche all'elenco di sviluppo (http://tez.apache.org/mail-lists.html)

+0

se tez non controlla la struttura dati sottostante, partizionamento ... allora cosa significa avere bordi? Come si preparano i dati per i vertici? – SonOfSun