關於hive數據壓縮


一、優缺點

        優點: 1,減少存儲磁盤空間,降低單節點的磁盤IO。

                    2,由於壓縮后的數據占用的帶寬更少,因此可以加快數據在Hadoop集群流動的速度。例如在不同節點創建3個replica的階段,或是shuffle階段。

        缺點: 需要花費額外的時間/CPU做壓縮和解壓縮計算

二、幾種常見的壓縮對比

 三、壓縮分析

        首先說明mapreduce哪些過程可以設置壓縮:需要分析處理的數據在進入map前可以壓縮,然后解壓處理,map處理完成后的輸出可以壓縮,這樣可以減少網絡I/O(reduce通常和map不在同一節點上),reduce拷貝壓縮的數據后進行解壓,處理完成后可以壓縮存儲在hdfs上,以減少磁盤占用量。

 3.1設置啟用壓縮:

有兩種方式可以設置數據壓縮:

方法一:在.sql腳本設置如下參數

set hive.exec.compress.intermediate=true --啟用中間數據壓縮
SET hive.exec.compress.output=true; -- 啟用最終數據輸出壓縮
set mapreduce.output.fileoutputformat.compress=true; --啟用reduce輸出壓縮
set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec --設置reduce輸出壓縮格式
set mapreduce.map.output.compress=true; --啟用map輸入壓縮
set mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;-- 設置map輸出壓縮格式

方法二:通過設置hive-site.xml文件設置啟用中間數據壓縮,配置文件如下:

       
       <property>
                <name>hive.exec.compress.intermediate</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.exec.compress.output</name>
                <value>true</value>
        </property>
 <!-- map輸出壓縮 -->
        <property>
                <name>mapreduce.map.output.compress</name>
                <value>true</value>
        </property>
        <property>
                <name>mapreduce.map.output.compress.codec</name>
                <value>org.apache.hadoop.io.compress.SnappyCodec</value>
        </property>
        <!-- reduce輸出壓縮 -->
        <property>
                <name>mapreduce.output.fileoutputformat.compress</name>
                <value>true</value>
        </property>
        <property>
                <name>mapreduce.output.fileoutputformat.compress.codec</name>
                <value>org.apache.hadoop.io.compress.SnappyCodec</value>
        </property>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM