由於hadoop擅長儲存大檔案,因為大檔案的元資料資訊比較少,如果hadoop集群當中有大量的小檔案,那麼每個小檔案都需要維護乙份元資料資訊,會大大的增加集群管理元資料的記憶體壓力,所以在實際工作當中,如果有必要一定要將小檔案合併成大檔案進行一起處理。
cd /export/servers
hdfs dfs -getmerge /config/*.xml ./hello.xml
type
命令
按住shift
開啟cmd
,對資料進行合併
# type hadoop-2.7.2.tar.gz.part2 >> hadoop-2.7.2.tar.gz.part1
合併完成後,將hadoop-2.7.2.tar.gz.part1重新命名為hadoop-2.7.2.tar.gz即可
**如下:
/**
* 將多個本地系統檔案,上傳到hdfs,並合併成乙個大的檔案
* @throws exception
*/@test
public
void
mergefile()
throws exception
ioutils.
closequietly
(outputstream)
; local.
close()
; filesystem.
close()
;}
HDFS合併小檔案
眾所周知,hdfs中過多的小檔案,會給namenode造成很大的壓力,所謂的小檔案,是指遠遠小於檔案塊大小的檔案。在使用hdfs的過程中,應盡量避免生成過多的小檔案。假設存放在本地的資料由很多個小檔案組成,需要上傳到hdfs。一般的做法是在本地使用指令碼 程式先把小檔案合併後再上傳。假設本地有兩個小...
HDFS的小檔案合併成大檔案
前提 在實際專案中,輸入資料往往是由許多小檔案組成,這裡的小檔案是指小於hdfs系統block大小的檔案 預設128m 然而每乙個儲存在hdfs中的檔案 目錄和塊都對映為乙個物件,儲存在namenode伺服器記憶體中,通常占用150個位元組。由於hadoop擅長儲存大檔案,因為大檔案的元資料資訊比較...
HDFS的API操作 小檔案的合併
由於 hadoop 擅長儲存大檔案,因為大檔案的元資料資訊比較少,如果 hadoop 集群當中有大量的小檔案,那麼每個小檔案都需要維護乙份元資料資訊,會大大的增加集群管理元資料的記憶體壓力,所以在實際工作當中,如果有必要一定要將小檔案合併成大檔案進行一起處理 cd export servers hd...