Hive優化--文件格式

1.      Hive調優前相關規劃設計

Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射爲一張數據庫表,並提供Hive SQL(簡稱HQL)查詢功能,可以將HQL語句轉換爲MapReduce、Tez、Spark任務運行。本文僅討論Hive on MapReduce的性能調優場景。

在進行Hive參數調優和SQL調優之前,要進行相應的規劃設計,包括:Hive表使用高效的文件格式Hive表文件及中間文件使用合適的文件壓縮格式根據業務特徵創建分區表以及創建分桶表

1.1.    Hive表文件使用高效的文件格式

(1)建議使用ORC

ORC文件格式可以提供一種高效的方法來存儲Hive數據,運用ORC可以提高Hive的讀、寫以及處理數據的性能。

以下兩種場景需要應用方權衡是否使用ORC

(a)文本文件加載到ORC格式的Hive表的場景:由於文本格式到ORC,需要耗費較高的CPU計算資源,相比於直接落地成文本格式Hive表而言加載性能會低很多;

(b)Hive表作爲計算結果數據,導出給Hadoop之外的外部系統讀取使用的場景:ORC格式的結果數據,相比於文本格式的結果數據而言其易讀性低很多。

除以上兩種場景外,其他場景均建議使用ORC作爲Hive表的存儲格式。

(2)考慮使用Parquet

Parquet的核心思想是使用“record shredding and assembly algorithm”來表示複雜的嵌套數據類型,同時輔以按列的高效壓縮和編碼技術,實現降低存儲空間,提高IO效率,降低上層應用延遲。

Parquet是語言無關的,而且不與任何一種數據處理框架綁定在一起,適配多種語言和組件,能夠與Parquet配合的組件有:

查詢引擎:Hive、Impala、Pig;

計算框架:MapReduce、Spark、Cascading;

數據模型:Avro、Thrift、Protocol Buffers、POJOs。

對於Impala和Hive共享數據和元數據的場景,建議Hive表存儲格式爲Parquet。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章