Sto cercando di scoprire dove viene salvato l'output di un'attività Mappa su disco prima che possa essere utilizzato da un'attività Riduci.In Hadoop, dove il framework salva l'output dell'attività della mappa in una normale applicazione di riduzione della mappa?
Nota: - versione utilizzata è Hadoop 0.20.204 con la nuova API
Ad esempio, quando sovrascrivendo il metodo map nella classe Map:
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
// code that starts a new Job.
}
Sono interessato a scoprire dove fa context.write() finisce per scrivere i dati. Finora ho incontrato il:
FileOutputFormat.getWorkOutputPath(context);
che mi dà il seguente percorso sul HDFS:
hdfs://localhost:9000/tmp/outputs/1/_temporary/_attempt_201112221334_0001_m_000000_0
Quando provo a usarlo come input per un altro lavoro che mi dà il seguente errore:
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/tmp/outputs/1/_temporary/_attempt_201112221334_0001_m_000000_0
Nota: il lavoro viene avviato nel Mapper, quindi tecnicamente, la cartella temporanea in cui il compito Mapper sta scrivendo E 'esiste uscita quando il NE Il lavoro inizia. Poi di nuovo, dice ancora che il percorso di input non esiste.
Qualche idea su dove viene scritta l'uscita temporanea? O forse qual è il luogo in cui posso trovare l'output di un'attività Mappa durante un lavoro che ha sia una fase Mappa che una fase Riduci?
BTW, sembra FileOutputhFormat # getWorkOutputPath fornisce il percorso della cartella di output temporanea per il lavoro e non per l'attività della mappa come da documentazione api. 'Quando provo ad usarlo come input per un altro lavoro, mi dà il seguente errore:' - di solito i file temporanei vengono cancellati una volta completato il lavoro o altrimenti il nodo si riempie facilmente. –
OK, equo punto, ma sto avviando il lavoro mentre l'altro lavoro è in esecuzione. Riduco la mappa nidificata. Quindi, il lavoro esterno è occupato-in attesa mentre il lavoro interno è in esecuzione, quindi non ci dovrebbe essere alcuna cancellazione di file temporanei. – inquire
Ma ok, le cose giuste vengono cancellate, il che significa che erano da qualche parte prima che venissero cancellate. Devo scoprire dov'è. : D – inquire