我有一个托管配置单元表,它只包含一个150mb的文件。然后我对它执行“selectcount(*)fromtbl”,它使用2个Map器。我想把它调大一点。
首先,我尝试了“set mapred.max.split.size=8388608;”,因此,希望它将使用19个Map器。但它只使用3。不知怎的,它还是将输入拆分了64mb。我还使用了“set dfs.block.size=8388608;”,也不行。
然后我试着做同样的事情。它最初使用3个Map器,当我设置mapred.max.split.size时,它使用19个。我想问题出在Hive里。
我读了一些配置单元的源代码,比如combinehiveinputformat、execdriver等等,都找不到线索。
我还可以使用什么设置?
2条答案
按热度按时间8cdiaqws1#
尝试添加以下内容:
kcwpcxri2#
我将@javadba的答案与我从hive邮件列表收到的答案结合起来,下面是解决方案:
从邮件列表:
hive似乎正在使用旧的hadoop mapreduce api,因此mapred.max.split.size将无法工作。
稍后我会深入研究源代码。