Hive Parquet配置

parquet的配置主要包括:
parquet.compression
parquet.block.size
parquet.page.size
等,詳見:
https://github.com/Parquet/parquet-mr/blob/master/parquet-hadoop/src/main/java/parquet/hadoop/ParquetOutputFormat.java
這些配置在Hive裏面直接set就好,比如:
set parquet.compression=snappy
但是block size比較難設置。

首先,關於parquet的數據格式:
https://github.com/Parquet/parquet-format
block size對應於row group size的,但是由不完全是同一個東西,
block size是grow group在內存中的buffer size,實際寫到磁盤之後,並沒有這麼大。比如我就遇到,block size設置爲512MB,然後通過metadata去讀block size只有100多MB。
而且在hive中,如果你是通過另外一張表,通過insert into/overwrite …. select….來創建parquet的話,光設置parquet.block.size是沒用的,還需要保證hive的split size夠大:
http://blog.javachen.com/2013/09/04/how-to-decide-map-number/
http://blog.csdn.net/moon_yang_bj/article/details/17901371
也就是說,parquet.block.size、dfs.block.size(hadoop 2.x 中是dfs.blocksize)、mapred.max.split.size都要設大才行。

發佈了14 篇原創文章 · 獲贊 13 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章