1. 程式人生 > >史上最全MapReduce小檔案優化策略

史上最全MapReduce小檔案優化策略

小檔案的優化無非以下幾種方式:

 

  1. 在資料採集的時候,就將小檔案或小批資料合成大檔案再上傳 HDFS
  2. 在業務處理之前,在 HDFS 上使用 mapreduce 程式對小檔案進行合併
  3. 在 mapreduce 處理時,可採用 CombineTextInputFormat 提高效率
  4. Hadoop Archive:是一個高效地將小檔案放入 HDFS 塊中的檔案存檔工具,它能夠將多個小檔案打包成一個 HAR 檔案,這樣就減少了 namenode 的記憶體使用 (存檔不懂得可以百度hadoop存檔的使用--連結https://blog.csdn.net/qq_32736999/article/details/82890413
    )
  5. Sequence file:sequence file 由一系列的二進位制 key/value 組成,如果 key 為檔名,value 為檔案內容, 則可以將大批小檔案合併成一個大檔案
  6. CombineFileInputFormat:CombineFileInputFormat 是一種新的 inputformat,用於將多個檔案合併成一個單獨的split,另外,它會考慮資料的儲存位置。
  7. 開啟JVM 重用對於大量小檔案Job,可以開啟JVM 重用會減少 45%執行時間。JVM 重用理解:一個 map 執行一個 jvm,重用的話,在一個 map 在 jvm 上執行完畢後,jvm 繼續執行其他 map。具體設定:mapreduce.job.jvm.numtasks 值在 10-20 之間