問題是在作業完成後,(/我的客戶機)/ tmp目錄中的jar文件未被清理。 我有以下的(簡化)代碼:如何清理我的hadoop客戶機上的jar作業
public void run() throws IOException {
PigServer pigServer = null;
try {
StringBuilder sb = new StringBuilder();
// ... some methods that add to the sb ...
pigServer = new PigServer(ExecType.MAPREDUCE);
pigServer.setBatchOn();
pigServer.registerQuery(sb.toString());
// execute and discard the batch
pigServer.executeBatch();
pigServer.discardBatch();
} finally {
if (pigServer != null) {
pigServer.shutdown();
}
}
}
據我瞭解pigServer.shutdown()應該刪除/ tmp中我所有的臨時文件。但是,作業完成後,我的/ tmp目錄中充滿了Job9196419177728780689.jar文件和一個空的pig8776538161976852388tmp子目錄。
調試時,我看到(遠程)hadoop羣集上的大量作業正在被刪除,再加上一次嘗試刪除/ tmp/temp2071202241(本地)。 這似乎並不是我本地系統上的現有目錄。
關閉虛擬機之後,文件會被刪除,但這顯然不是我在完成每項工作後所要做的。 我錯過了什麼嗎?
編輯:我不是唯一一個有這個問題,這個問題在https://issues.apache.org/jira/browse/PIG-3338
編輯2日提交的:可能的解決方法(不是我):http://www.lopakalogic.com/articles/hadoop-articles/pig-keeps-temp-files/
謝謝。爲每個腳本啓動一個新的虛擬機並不是我期待的。至少現在我會繼續使用我的解決方法,這是一個cron作業,每隔一段時間就會清空/ tmp。 –