Jetzt habe ich eine 4-Phasen-MapReduce Job wie folgt:Chaining Multi-Reduzierungen in einem Hadoop MapReduce Job
Input-> Map1 -> Reduce1 -> Reducer2 -> Reduce3 -> Reduce4 -> Output
ich feststellen, dass es ChainMapper
Klasse in Hadoop, wo Kette mehrere Mapper in eine große Mapper, und speichern Sie die E/A-Kosten der Festplatte zwischen den Kartenphasen. Es gibt auch eine ChainReducer
Klasse, aber es ist kein echter "Chain-Reducer". Es kann nur unterstützen, Arbeitsplätze wie:
[Map+/ Reduce Map*]
ich weiß, ich vier MR Jobs für meine Aufgabe einstellen kann und die Standard-Einsatz-Mapper für die letzten drei Arbeitsplätze. Aber das kostet viel Festplatten-I/O, da Reducer das Ergebnis auf die Festplatte schreiben sollten, damit der folgende Mapper darauf zugreifen kann. Gibt es eine andere integrierte Hadoop-Funktion, um meine Reduzierstücke zu verketten, um die I/O-Kosten zu senken?
Ich verwende Hadoop 1.0.4.
Ich wäre auch sehr daran interessiert, wenn es möglich ist. –