日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 實用干貨分享(5)- Hive存儲格式及壓縮算法測試比對分析

          實用干貨分享(5)- Hive存儲格式及壓縮算法測試比對分析

          發(fā)布人:中電金信人 時間:2022-06-05 來源:工程師 發(fā)布文章

           編輯

           

          Hive文件存儲格式及優(yōu)缺點


          textfile

          默認的文件格式,行存儲。建表時不指定存儲格式即為textfile,導(dǎo)入數(shù)據(jù)時把數(shù)據(jù)文件拷貝至hdfs不進行處理。


          優(yōu)點:最簡單的數(shù)據(jù)格式,便于和其他工具(pig, grep, sed, awk)共享數(shù)據(jù)、便于查看和編輯;加載較快。


          缺點:耗費存儲空間,I/O性能較低;Hive不進行數(shù)據(jù)切分合并,不能進行并行操作,查詢效率低。


          適用于小型查詢,查看具體數(shù)據(jù)內(nèi)容的測試操作。


          sequencefile

          行存儲,含有鍵值對的二進制文件。


          優(yōu)點:可壓縮、可分割,優(yōu)化磁盤利用率和I/O;可并行操作數(shù)據(jù),查詢效率高。


          缺點:存儲空間消耗最大;對于Hadoop生態(tài)系統(tǒng)之外的工具不適用,需要通過text文件轉(zhuǎn)化加載。


          rcfile

          行列式存儲。先將數(shù)據(jù)按行分塊,同一個record在一個塊上,避免讀一條記錄需要讀多個block;然后塊數(shù)據(jù)列式存儲。


          優(yōu)點:可壓縮,高效的列存取;查詢效率較高。


          缺點:加載時性能消耗較大,需要通過text文件轉(zhuǎn)化加載;讀取全量數(shù)據(jù)性能低。


          orcfile

          編輯

          優(yōu)化后的rcfile,行列式存儲。優(yōu)缺點與rcfile類似,查詢效率最高。適用于Hive中大型的存儲、查詢。


          parquet

          編輯

          列式存儲,以二進制方式存儲。


          優(yōu)點:可壓縮,高效的列存?。粌?yōu)化I/O。


          缺點:不支持upadate操作(數(shù)據(jù)寫入后不可更改),不支持ACID。


          Hive壓縮算法對比


          Hive壓縮算法包含6種,其中包含default、gzip、bzip2、lzo、lz4、snappy等壓縮格式,具體采用壓縮算法及比對詳細如下:


          編輯


          檢查Hadoop本地庫支持壓縮格式


          檢查命令:hadoop checknative

          hadoop checknative 命令檢查本地庫是否支持壓縮,若不支持,需要進行源碼編譯將native library編譯進Hadoop。


          native library checking:

          hadoop:  true /opt/cloudera/parcels/cdh-6.1.0-1.cdh6.1.0.p0.770702/lib/hadoop/lib/native/libhadoop.so.1.0.0

          zlib:     true /lib64/libz.so.1

          zstd:     true /opt/cloudera/parcels/cdh-6.1.0-1.cdh6.1.0.p0.770702/lib/hadoop/lib/native/libzstd.so.1

          snappy:  true /opt/cloudera/parcels/cdh-6.1.0-1.cdh6.1.0.p0.770702/lib/hadoop/lib/native/libsnappy.so.1

          lz4:     true revision:10301

          bzip2:   true /lib64/libbz2.so.1

          openssl:  true /lib64/libcrypto.so

          isa-l:   true /opt/cloudera/parcels/cdh-6.1.0-1.cdh6.1.0.p0.770702/lib/hadoop/lib/native/libisal.so.2


          Hive壓縮算法設(shè)置


          default壓縮格式

          編輯

          set hive.exec.compress.output=true; 

          set mapred.output.compress=true;

          set mapred.output.compression.codec=org.apache.hadoop.io.compress.defaultcodec;


          gzip壓縮格式

          編輯

          set hive.exec.compress.output=true; 

          set mapred.output.compress=true; 

          set mapred.output.compression.codec=org.apache.hadoop.io.compress.gzipcodec;


          bzip2壓縮格式

          編輯

          set hive.exec.compress.output=true; 

          set mapred.output.compress=true; 

          set mapred.output.compression.codec=org.apache.hadoop.io.compress.bzip2codec;


          lzo壓縮格式

          編輯

          set hive.exec.compress.output=true; 

          set mapred.output.compress=true; 

          set mapred.output.compression.codec=com.hadoop.compression.lzo.lzopcodec;


          lz4壓縮格式

          編輯

          set hive.exec.compress.output=true; 

          set mapred.output.compress=true; 

          set mapred.output.compression.codec= org.apache.hadoop.io.compress.lz4pcodec;


          snappy壓縮格式

          編輯

          set hive.exec.compress.output=true;

          set mapred.compress.map.output=true;

          set mapred.output.compress=true;

          set mapred.output.compression=org.apache.hadoop.io.compress.snappycodec;

          set mapred.output.compression.codec=org.apache.hadoop.io.compress.snappycodec;

          set io.compression.codecs=org.apache.hadoop.io.compress.snappycodec;


          壓縮算法測試及結(jié)果比對


          測試案例

          編輯

          測試一個Hive在不同的壓縮格式下進行對壓縮比、查詢效率、插入效率進行結(jié)果比對。


          測試環(huán)境

          編輯

          大數(shù)據(jù)平臺產(chǎn)品:CDH6.1

          節(jié)點個數(shù):2+6

          內(nèi)存:256G

          CPU:64核


          測試數(shù)據(jù)

          編輯

          表名稱:ods.o_cor_test

          源文件大小:3.8G  

          查詢速度:19.41S

          建表語句: 

          CREATE TABLE ODS.O_COR_TEST

          (  BOOK_ID                 STRING,

            EVENT_ID                 STRING,

            TRX_ID_IN                STRING,

            TRX_ID_OUT               STRING,

            LINE_ID                  STRING,

            HEADER_ID                STRING,

            BATCH_ID                 STRING,

            BOOK_TYPE                STRING,

            ASSET_TYPE               STRING,

            CATEGORY_ID              STRING,

            INTERFACE_CONTROL_ID_IN  STRING,

            INTERFACE_CONTROL_ID_OUT STRING,

            EFFECTIVE_DATE           DATE,

            INEFFECTIVE_DATE         DATE,

            DATA_DATE                DATE,

            ACCOUNTING_DATE          DATE,

            EVENT_TYPE               STRING,

            ACTIVE_CODE              STRING,

            AMORTIZED_COST           STRING,

            FAIR_COST                STRING,

            CONTACT_IN               STRING,

            CONTACT_OUT              STRING,

            COST                     STRING,

            INT                      STRING,

            INT_ADJUST               STRING,

            EVALUATION_ADJUST        STRING,

            FAIR_COST_ADJUST         STRING,

            CV_RESERVE               STRING,

            RV_RESERVE               STRING,

            HV_RESERVE               STRING,

            RA_COST                  STRING,

            LEASE_COST               STRING,

            LEASE_CV_RESERVE         STRING,

            LEASE_RV_RESERVE         STRING,

            LEASE_HV_RESERVE         STRING,

            INVESTMENT_INCOME        STRING,

            INVESTMENT_LOSS          STRING,

            FAIR_COST_GAIN_LOSS      STRING,

            V_LOSS                   STRING,

            OTHER_INCOME             STRING,

            ORIGINAL                 STRING,

            TRANS_INT_IN             STRING,

            TRANS_INT_OUT            STRING,

            INT_ACCRUED              STRING,

            EXPENSE                  STRING,

            RECOV_ORIGINAL           STRING,

            RECOV_TRANS_INT_IN       STRING,

            RECOV_TRANS_INT_OUT      STRING,

            RECOV_INT_ACCRUED        STRING,

            RECOV_EXPENSE            STRING,

            LOSS_ORIGINAL            STRING,

            LOSS_TRANS_INT_IN        STRING,

            LOSS_TRANS_INT_OUT       STRING,

            LOSS_INT_ACCRUED         STRING,

            LOSS_EXPENSE             STRING,

            LEASE_ORIGINAL           STRING,

            GUARANTEE1               STRING,

            GUARANTEE2               STRING,

            GUARANTEE3               STRING,

            BALANCE_OUT              STRING,

            LY_INVESTMENT_INCOME     STRING,

            LY_INVESTMENT_LOSS       STRING,

            LY_FAIR_COST_GAIN_LOSS   STRING,

            LY_V_LOSS                STRING,

            LAST_UPDATE_DATE         DATE,

            LAST_UPDATED_BY          STRING,

            CREATION_DATE            DATE,

            CREATED_BY               STRING,

            LAST_UPDATE_LOGIN        STRING,

            ATTRIBUTE_CATEGORY       STRING,

            ATTRIBUTE1               STRING,

            ATTRIBUTE2               STRING,

            ATTRIBUTE3               STRING,

            ATTRIBUTE4               STRING,

            ATTRIBUTE5               STRING,

            ATTRIBUTE6               STRING,

            ATTRIBUTE7               STRING,

            ATTRIBUTE8               STRING,

            ATTRIBUTE9               STRING,

            ATTRIBUTE10              STRING,

            INT_AMORTIZED            STRING,

            START_DATE               DATE,

            END_DATE                 DATE,

            DEL_FLAG                 STRING

          )



          測試方法


          本測試采用每次開啟Hive壓縮模式并設(shè)置Hive的壓縮算法,對于Hive每種文件存儲格式新建Hive表,并向不同分區(qū)插入數(shù)據(jù),測試并記錄各種壓縮算法的壓縮效率、查詢速率、插入速度。


          注:每次設(shè)置終端退出后設(shè)置無效。


          查詢速率測試sql語句:

          select count(*) from ods.o_cor_test where etl_date=


          壓縮算法對比


          編輯

          編輯

          編輯

          編輯


          測試結(jié)果


          當應(yīng)用場景多為查詢時,建議使用orcfile存儲格式且壓縮格式為default。


          當應(yīng)用場景多為存儲時,建議使用orcfile存儲格式且壓縮格式為bzip2。


          當應(yīng)用場景多為插入時,建議使用sequencefile存儲格式且壓縮格式為snappy。


          一般常用存儲格式為orcfile且壓縮格式為default。


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: 干貨

          技術(shù)專區(qū)

          關(guān)閉