我正在为我的蜂巢表使用镶木地板格式。我看到这些表的存储量得到了很大改善。当我在这些表上运行一些查询时,与我在文本格式的相同表上运行相同查询时相比,启动的映射器数量要少得多。因此,启动的映射器数量非常少,对镶木地板格式的配置单元查询需要很长时间才能完成。 (我怀疑这是因为小尺寸的拼花格式)。 有没有办法改善镶木地板格式的运行时间,换句话说,在运行配置单元查询时控制映射器的数量?
答案 0 :(得分:0)
如果您使用带有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。