【问题标题】:How to control the number of mappers when using parquet format使用 parquet 格式时如何控制映射器的数量
【发布时间】:2016-04-27 05:13:10
【问题描述】:
我正在为我的蜂巢表使用镶木地板格式。我看到这些表的存储得到了显着改善。当我在这些表上运行一些查询时,与我在相同的文本格式的表上运行相同的查询相比,启动的映射器数量非常少。因此,启动的映射器数量非常少,parquet 格式的配置单元查询需要很长时间才能完成。 (我怀疑这是因为小尺寸的镶木地板格式)。
有什么方法可以提高 parquet 格式的运行时间,或者换句话说,在运行 hive 查询时控制映射器的数量?
【问题讨论】:
标签:
performance
hadoop
mapreduce
hive
parquet
【解决方案1】:
如果您将 hive 与 Tez 引擎一起使用,则默认输入格式(决定数据的拆分次数)是 HiveInputFormat 类。您可以像这样使用set 命令更改输入格式类
set hive.input.format=hive.tez.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
您现在可以通过改变属性来控制输入拆分的数量
mapreduce.input.fileinputformat.split.maxsizemapreduce.input.fileinputformat.split.minsize
并将它们设置为您想要的字节数。
CombineHiveInputFormat 类还将单独的文件合并到一个单独的拆分中,以防每个文件具有大小