簡體   English   中英

什么是lz4分割限額?

[英]What is lz4 split limit?

這個問題告訴我lz4壓縮格式是可拆分的,適合在hdfs中使用。 好的,我已經將1.5 Gb數據壓縮到300 Mb lz4文件中。 如果我嘗試通過Spark讀取此文件-並行讀取文件可以創建多少個最大工人數? 可拆分件數是否取決於lz4壓縮級別?

壓縮不會影響可拆分件數

如果輸入文件被壓縮,則將從HDFS讀取的字節減少,這意味着讀取數據的時間更少。 節省時間有利於執行工作。

可拆分的壓縮編解碼器絕對很重要,並且在Hadoop處理中很重要。 我不同意先前的答案。 當您說可拆分時,它實際上意味着您可以擁有一個映射程序,該程序可以讀取邏輯拆分並處理數據,而無需擔心使用某種壓縮算法將拆分的其他部分存儲在datanode群集中的其他位置。

例如,考慮一下您的Windows壓縮文件。 如果我有10 GB的文件,並計划將最大拆分大小壓縮為100MB,則我可能會創建10個100MB的文件(總壓縮為1 GB)。 您可以編寫一個程序來處理文件的一部分而無需將整個文件解壓縮到其原始狀態嗎? 這是hadoop上下文中可拆分和不可拆分壓縮編解碼器之間的區別。 例如,.gz是不可拆分的,而bzip2是可能的。 即使Hadoop中有一個.gz文件,您也必須首先在整個datanode上解壓縮整個文件,然后針對單個文件運行程序,這效率不高並且不使用Hadoop並行功能。

在Windows或Linux中將壓縮文件拆分為多個部分與使用壓縮編解碼器在hadoop中拆分文件之間,很多人感到困惑。

讓我們回到討論為何使用分裂物質進行壓縮的討論。 Hadoop本質上依賴於映射器和縮減器,並且每個映射器都可以在文件的邏輯拆分上工作(而不是物理塊)。 如果我存儲的文件沒有splittablity,則mapper將必須首先解壓縮整個文件,然后對該記錄執行任何操作。

因此請注意,輸入拆分與Hadoop中的並行處理直接相關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM