Hadoop 无法增加配置单元映射程序任务?

Hadoop 无法增加配置单元映射程序任务?,hadoop,hive,Hadoop,Hive,我有一个托管配置单元表,它只包含一个150MB的文件。然后我从tbl中选择count*,它使用2个映射器。我想把它调大一点 首先,我尝试了“设置mapred.max.split.size=8388608;”,因此,希望它将使用19个映射器。但它只使用了3。不知怎的,它仍然将输入拆分了64MB。我还使用了“set dfs.block.size=8388608;”,也不行 然后我尝试了一个普通的map reduce工作来做同样的事情。它最初使用3个映射器,当我设置mapred.max.split.s

我有一个托管配置单元表,它只包含一个150MB的文件。然后我从tbl中选择count*,它使用2个映射器。我想把它调大一点

首先,我尝试了“设置mapred.max.split.size=8388608;”,因此,希望它将使用19个映射器。但它只使用了3。不知怎的,它仍然将输入拆分了64MB。我还使用了“set dfs.block.size=8388608;”,也不行

然后我尝试了一个普通的map reduce工作来做同样的事情。它最初使用3个映射器,当我设置mapred.max.split.size时,它使用19个。我想问题在于蜂巢

我读了一些配置单元的源代码,比如CombineHiveInputFormat、ExecDriver等,都找不到线索


我还可以使用哪些设置?

尝试添加以下设置:

set hive.merge.mapfiles=false;
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;

尝试添加以下内容:

set hive.merge.mapfiles=false;
set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;

我将@javadba的答案与我从Hive邮件列表收到的答案结合起来,下面是解决方案:

set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set mapred.map.tasks = 20;
select count(*) from dw_stage.st_dw_marketing_touch_pi_metrics_basic;
从邮件列表中:

HIVE似乎正在使用旧的Hadoop MapReduce API,因此mapred.max.split.size无法工作


稍后我将深入研究源代码。

我将@javadba的答案与我从Hive邮件列表中收到的答案结合起来,下面是解决方案:

set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
set mapred.map.tasks = 20;
select count(*) from dw_stage.st_dw_marketing_touch_pi_metrics_basic;
从邮件列表中:

HIVE似乎正在使用旧的Hadoop MapReduce API,因此mapred.max.split.size无法工作


稍后我将深入研究源代码。

设置hive.input.format将增加映射器到输入文件的数量。但仍然不能分割成更小的任务。因此,可能我还需要调整生成目标表的上游查询,即增加数字缩减器。设置hive.input.format将增加映射器到输入文件的数量。但仍然不能分割成更小的任务。因此,可能我还需要调整生成目标表的上游查询,即增加减数器。