Ich habe gerade angefangen, hadoop zu verwenden, und mir ist aufgefallen, dass lokale Jobverzeichnisse nicht gelöscht werden. Ich verwende hadoop 2.2.0 unter Windows.haddop/mapreduce lokale Jobverzeichnisse werden nicht gelöscht
Gibt es irgendeine Konfiguration, die benötigt wird, damit Hadoop die Bereinigung aller Verzeichnisse unter "/ tmp/hadoop- /mapred/local/" vornehmen kann?
Auch nach der Untersuchung und dem Blick in den Code fand ich, dass ein Teil der Logik in der Klasse "org.apache.hadoop.mapred.LocalJobRunner" (hadoop-mapreduce-client-common-2.2.0)
try {
fs.delete(systemJobFile.getParent(), true); // delete submit dir
localFs.delete(localJobFile, true); // delete local copy
// Cleanup distributed cache
localDistributedCacheManager.close();
} catch (IOException e) {
LOG.warn("Error cleaning up "+id+": "+e);
}
Warum nicht einfach verwenden (wie es der Fall ist für systemJobFile):
localFs.delete (localJobFile.getParent(), true); // lösche lokale Kopie
Ist es richtig, das zu tun? Ich versuche es und sieht aus wie es das Problem behebt, aber ich bin mir nicht sicher.
Update: Ich habe gerade festgestellt, dass viele Verzeichnisse "attemypy_local ****" immer noch da sind. Nicht gelöscht von hadoop!
Vielen Dank.