如何在使用镶木地板格式时控制映射器的数量



我正在为我的蜂巢表使用镶木地板格式。我看到这些表的存储得到了显着改善。当我在这些表上运行一些查询时,与以文本格式对相同表运行相同查询时相比,启动的映射器数量非常少。因此,启动的映射器数量非常少,关于镶木地板格式的 Hive 查询需要很长时间才能完成。(我怀疑这是因为小尺寸的镶木地板格式)。有没有办法改善镶木地板格式的运行时间,或者换句话说,在运行 Hive 查询时控制映射器的数量?

如果将 Hive 与 Tez 引擎一起使用,则默认输入格式(决定数据的拆分数)是 HiveInputFormat 类。您可以使用 set 命令更改输入格式类,如下所示

set hive.input.format=hive.tez.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

现在,您可以通过改变属性来控制输入拆分的数量

mapreduce.input.fileinputformat.split.maxsize mapreduce.input.fileinputformat.split.minsize

并将它们设置为所需的字节数。

CombineHiveInputFormat 类还将单独的文件合并为单个拆分,前提是每个文件的大小<<dfs.block.size。

最新更新