Ich möchte einen Wert in der Map-Aufgabe auf der lokalen Festplatte in jedem Datenknoten speichern. Zum BeispielSchreiben von Daten auf die lokale Festplatte in jedem Datenknoten
public void map (...) {
//Process
List<Object> cache = new ArrayList<Object>();
//Add value to cache
//Serialize cache to local file in this data node
}
Wie kann ich speichern diese Cache-Objekt auf der lokalen Festplatte in jedem Datenknoten, denn wenn ich diesen Cache in Map-Funktion speichern, wie oben, dann wird die Leistung, da I/O-Task schrecklich sein?
Ich meine, gibt es eine Möglichkeit, auf Map-Task in diesem Datenknoten vollständig zu laufen warten und dann werden wir diesen Cache in lokalen Datenträger speichern? Oder hat Hadoop eine Funktion, dieses Problem zu lösen?
bitte unten Antwort sehen, Hoffnung es hilft. –