hive的壓縮本質上指的是MapReduce的壓縮,因為hive其實就是MapReduce的高級語言版(SQL)怨咪,hive SQL底層的運行也都是解析成MapReduce程序去運行的。這里的壓縮涉及到兩個方面畅哑,一個是臨時的緩存數(shù)據(jù),一個是永久的落地數(shù)據(jù)玩焰。緩存數(shù)據(jù)其實就是map方法的輸出逆粹,永久的落地數(shù)據(jù)當然就是reduce的輸出了(網(wǎng)上還有把map讀取的數(shù)據(jù)算一個階段募疮,覺得不需要特別設置就不說了)。壓縮種類不少僻弹,各有各的特點酝锅,需要各位根據(jù)自己的場景選擇合適的壓縮方式。
1奢方、lzo壓縮(map搔扁、reduce最常用)
壓縮比:20%? ? 壓解速度:比較快? ?是否支持split:支持(需要創(chuàng)建索引)
2、snappy壓縮(map最常用)
壓縮比:25%? ? 壓解速度:比lzo塊? ? 是否支持split:不支持
3蟋字、gzip壓縮(很少用)
壓縮比:13%? ? 壓解速度:很慢? ? 是否支持split:不支持
4稿蹲、bzip2壓縮(很少用)
壓縮比:和gzip差不多? ? 壓解速度:很慢? ? 是否支持split:支持