hadoop的archive歸檔和CombineFileInputFormat的使用

月夜原野發表於2017-10-16
在使用mapreduce進行計算的時候,有時候會因為小檔案過多,導致map任務過多,用下面的方式(CombineFileInputFormat),可以減少map數量:
http://www.cnblogs.com/skyl/p/4761662.html

 原來flume上傳好多個小檔案,但是hdfs的塊兒大小設定為64M,而hadoop一直非常討厭小檔案,因為小檔案會佔用大量的namenode空間,我一直沒有弄懂怎麼解決這個矛盾;直到今天,我才懂得了,那麼多的小檔案,在使用的時候,是先要用archive進行歸檔,變成一個大檔案;一般幾百個檔案變成一個檔案,然後將所有的小檔案刪除,就剩下一個大檔案,那麼namenode的檔案後設資料就會大大的減少

可以使用archive歸檔:
hadoop archive -archiveName 2015-11-11.har -p /flumeTest/0123-62F9-5FAB-9A69-D134-8E98-3D5A-1012-035E-606F-E162/2015-11-11/ /tmp/archive/it

檢視:hadoop dfs -ls har:///tmp/archive/it/2015-11-11.har



相關文章