管理小文件
許多用戶關(guān)注小文件問題,可能導(dǎo)致以下情況:
穩(wěn)定性問題:HDFS 中如果存在太多小文件的話會導(dǎo)致 NameNode 壓力過大
成本問題:在 HDFS 中,每個小文件都會占用至少一個數(shù)據(jù)塊的大小,例如 128 MB
查詢效率:查詢過多小文件會影響查詢效率
理解 Checkpoint
假設(shè)你正在使用 Flink Writer,每個 Checkpoint 會生成 1 ~ 2 個 snapshot,并且 Checkpoint 時會強制將文件生成在分布式文件系統(tǒng)(DFS)上,因此 Checkpoint 間隔越小,生成的小文件就越多。
1、所以先要增加 Checkpoint 間隔時間
默認情況下,不僅 Checkpoint 會生成文件,寫入器(Writer)的內(nèi)存(write-buffer-size
)耗盡時也會將數(shù)據(jù)刷新到 DFS 并生成相應(yīng)的文件。你可以啟用 write-buffer-spillable
在寫入器中生成溢出文件,以生成更大的文件在 DFS 上。
2、其次增加 write-buffer-size
或啟用 write-buffer-spillable
理解 Snapshot
Paimon 維護文件的多個版本,文件的合并和刪除是邏輯上的操作,并不實際刪除文件。只有在 snapshot 過期時,文件才會真正被刪除,所以減少文件的一種方法是縮短 snapshot 過期的時間。Flink Writer 會自動處理過期的 snapshot。
理解 分區(qū) 和 Buckets
Paimon 的文件以分層方式組織。下圖展示了文件布局。從 snapshot 文件開始,Paimon 的讀取器可以遞歸地訪問表中的所有記錄。

舉個例子:
CREATE?TABLE?MyTable?(
????user_id?BIGINT,
????item_id?BIGINT,
????behavior?STRING,
????dt?STRING,
????hh?STRING,
????PRIMARY?KEY?(dt,?hh,?user_id)?NOT?ENFORCED
)?PARTITIONED?BY?(dt,?hh)?WITH?(
????'bucket'?=?'10'
);
表數(shù)據(jù)會被物理分片到不同的分區(qū),里面有不同的 Bucket ,所以如果整體數(shù)據(jù)量太小,單個 Bucket 中至少有一個文件,建議你配置較少的 Bucket 數(shù)量,否則會出現(xiàn)也有很多小文件。
理解 Primary Table 的 LSM
LSM 樹將文件組織成多個 sorted run。一個 sorted run 由一個或多個數(shù)據(jù)文件組成,每個數(shù)據(jù)文件都屬于且僅屬于一個 sorted run。

默認情況下,sorted run 的數(shù)量取決于 num-sorted-run.compaction-trigger
參數(shù),這意味著一個Bucket 中至少有 5 個文件。如果你想減少這個數(shù)量,可以保留較少的文件,但寫入性能可能會受到影響。如果該值變得過大,在查詢表時會需要更多的內(nèi)存和 CPU,這是寫入性能和查詢性能之間的權(quán)衡。
理解 Append-Only 表的文件
默認情況下 Append Only 表也會進行自動合并以減少小文件的數(shù)量。
然而,對于 Bucket 的 Append Only 表來說,它會出于順序目的而只壓縮 Bucket 內(nèi)的文件,這可能會保留更多的小文件。
理解 Full Compaction
也許你認為 Primary Key 表中的 5 個文件還可以接受,但 Append Only 表(Bucket)可能在一個單獨的 Bucket 中就會有 50 個小文件,這是很難接受的。更糟糕的是,不再活躍的分區(qū)也會保留這么多小文件。
建議你配置全量合并(Full-Compaction),通過設(shè)置 full-compaction.delta-commits
參數(shù),在Flink 寫入過程中定期執(zhí)行全量合并,這樣可以確保在寫入結(jié)束之前對分區(qū)進行完全合并。
Apache Paimon 相關(guān)文章:
Apache Paimon 介紹
Apache Paimon 基礎(chǔ)概念
Apache Paimon 文件布局設(shè)計
Apache Paimon 文件操作
Flink Table Store ——從計算到存儲提升流批統(tǒng)一端到端用戶體驗文章來源:http://www.zghlxwxcb.cn/news/detail-833369.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-833369.html
到了這里,關(guān)于Apache Paimon 文件管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!