现在的位置: 首页 > 综合 > 正文

Hive Parquet配置

2018年05月18日 ⁄ 综合 ⁄ 共 796字 ⁄ 字号 评论关闭

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都要设大才行。

抱歉!评论已关闭.