当前正在测试一个集群,当使用"CREATE TABLE AS"
时,生成的托管表最终为一个文件~1.2GB,而创建查询的基础文件有许多小文件。SELECT部分运行得很快,但结果是运行两个还原程序来创建一个文件,这占用了75%的运行时间。
附加测试:
1( 如果使用"CREATE EXTERNAL TABLE AS"
,则查询运行得非常快,并且不涉及合并文件步骤。
2( 此外,HDP 3.0.1版本似乎没有出现合并。
您可以更改set hive.exec.reducers.bytes.per.reducer=<number>
,让hive根据减速器输入大小决定减速器的数量(默认值设置为1GB或1000000000字节([您可以参考@leftjoin提供的链接来获取有关此属性的更多详细信息,并根据您的需要进行微调]
您可以尝试的另一个选项是更改以下属性
set mapreduce.job.reduces=<number>
set hive.exec.reducers.max=<number>