2016-01-22 149 views
2

HDFS存儲支持壓縮格式來存儲壓縮文件。我知道gzip壓縮不支持拼夾。試想現在該文件是壓縮大小爲1 GB的gzip壓縮文件。現在的問題是:gzip文件如何存儲在HDFS中

  1. 如何這個文件將獲取存儲在HDFS(塊大小爲64MB)

從這個link我才知道,gzip格式使用DEFLATE存儲的壓縮數據,並且DEFLATE將數據存儲爲一系列壓縮塊。

但我無法完全理解它並尋找廣泛的解釋。從gzip壓縮文件

更多疑惑:

  • 多少塊將在那裏爲這個1GB gzip壓縮文件。
  • 它會繼續在多個datanode?
  • 複製因子如何適用於此文件(Hadoop羣集複製因子爲3)。
  • 什麼是DEFLATE算法?
  • 閱讀gzip壓縮文件時應用哪種算法?
  • 我在這裏看到的是廣泛和詳細的解釋。

    +0

    文件系統中的文件不必在磁盤上連續存在,無論該磁盤是一個物理磁盤還是分佈式文件系統中的多個磁盤。文件系統將文件分成塊,它存儲在任何決定存儲它的地方。當應用程序請求文件時,文件系統知道到塊的映射以及塊的位置。它發送一個I/O請求來檢索它們,然後文件系統將這些塊分塊回到文件中。大事物的這種劃分是一個重點。分佈式系統可以集中資源來完成單個系統無法單獨完成的任務。 – e0k

    回答

    0

    如果拆分不支持zip文件格式,該文件將如何存儲在HDFS中(塊大小爲64MB)?

    所有DFS塊都將存儲在單個Datanode中。如果您的塊大小爲64 MB,文件爲1 GB,則帶有16個DFS塊(1 GB/64 MB = 15.625)的Datanode將存儲1 GB文件。

    這個1GB gzip壓縮文件會有多少塊。

    1 GB/64 MB = 15.625〜16 DFS塊

    如何複製因子將是適用於本文件(Hadoop集羣複製因子爲3)

    同的任何其他文件。如果文件是可拆分的,則不會更改。如果文件不可拆分,則將標識具有所需塊數的Datanodes。在這種情況下,3個datanode包含16個可用的DFS塊。

    從這個鏈接的源代碼:http://grepcode.com/file_/repo1.maven.org/maven2/com.ning/metrics.action/0.2.7/org/apache/hadoop/hdfs/server/namenode/ReplicationTargetChooser.java/?v=source

    http://grepcode.com/file_/repo1.maven.org/maven2/org.apache.hadoop/hadoop-hdfs/0.22.0/org/apache/hadoop/hdfs/server/namenode/BlockPlacementPolicyDefault.java/?v=source

    /** The class is responsible for choosing the desired number of targets 
    * for placing block replicas. 
    * The replica placement strategy is that if the writer is on a datanode, 
    * the 1st replica is placed on the local machine, 
    * otherwise a random datanode. The 2nd replica is placed on a datanode 
    * that is on a different rack. The 3rd replica is placed on a datanode 
    * which is on the same rack as the first replca. 
    */ 
    

    什麼是deflate算法?

    DELATE是解壓縮GZIP格式壓縮文件的算法。

    看看這張幻燈片,瞭解不同變種的zip文件的其他算法。

    enter image description here enter image description here

    看一看這個presentation瞭解更多詳情。

    +0

    感謝您的詳細解答。如果gzip壓縮文件在HDFS存儲期間被拆分,那麼爲什麼它說gzip不支持拆分以及爲什麼它通過單個映射器進行處理。您是否也可以澄清這一點 –

    +0

    Gzip不可分割,因此一個映射程序將處理16個1 GB文件塊。 –

    +0

    看一看:http://stackoverflow.com/questions/5630245/hadoop-gzip-compressed-files –

    相關問題