时间:2021-07-01 10:21:17 帮助过:4人阅读
在使用动态分区的时候,如果已知数据会分成n个分区,SQL运行的时候创建了m个Mapper,则这个SQL产生m * n个文件。如果这个数值大于设置的创建文件的总数(hive.exec.max.created.files),默认值100000个,就会出现异常。
在未知动态分区数时,可以使用distribute by 分区字段,将分区字段内容相同的数据放到同一个reduce,当然也可以使用distribute by rand()将数据随记分配给reduce,这样可以使每个reduce处理的数据大体相同。
控制Reduce的整体原则:
使大数据量利用合适的reduce数;
使单个reduce任务处理合适的数据量。
HIVE SQL产生的文件数量及参数调优
标签:原则 指定 表示 创建 where min hive 大于 总数