2016-04-26 97 views
1

基本上我有一個程序,它將文件上傳到HDFS。文件在任務執行結束時上傳。所以,會發生的情況是,許多任務同時(在執行結束時)將文件上傳到HDFS,從而造成爭用。文件大小小於HDFS塊(< 64 MB)。我想知道,如果事先創建一個HDFS文件會更快(當任務正在進行一些處理以避免爭用時),然後當處理完成時,讀取一個字符串中的本地文件的內容,然後追加該字符串已預先創建的HDFS文件。哪個更快,將文件上傳到HDFS或直接創建和寫入HDFS文件?

所以,基本上我的問題是,它有更多的開銷,創建一個HDFS文件或附加一個字符串到已經創建的HDFS文件?

+0

我只是試試看。我不認爲這會很難 –

+0

是的,但我只是想要一些意見。 – pythonic

+0

請提供更多信息。你是什​​麼意思:'如果讀一個字符串中這樣的文件的內容會更快,創建一個HDFS文件,然後直接將該字符串寫入HDFS文件'。它與'我有一個程序,它將文件上傳到HDFS'有所不同' –

回答

0

我自己測試過這個,並且注意到創建一個HDFS文件幾乎與追加它的時間幾乎相同。這是假設寫入的內容小於HDFS塊大小。如果你上傳一個HDFS文件,這相當於創建HDFS文件並添加到它,所以這意味着它需要兩倍的時間追加到它。