【发布时间】:2017-04-28 06:54:08
【问题描述】:
伙计们 我在hive中有一张表,有720多个分区,每个分区有400多个文件,文件平均大小为1G。
现在我执行以下 SQL: 插入覆盖表 test_abc select * from DEFAULT.abc A WHERE A.P_HOUR ='2017042400' ;
这个分区(P_HOUR ='2017042400')有 409 个文件。当我提交这个 sql 时,我得到了以下输出
INFO : 由于没有 reduce 运算符,reduce 任务的数量设置为 0 信息:拆分数:409
INFO : 提交作业令牌:job_1482996444961_9384015
我在谷歌上搜索了很多文档来找到如何减少映射器的数量,很多文档在文件很小的时候解决了这个问题。 我在直线中尝试了以下设置,但不起作用 ---------------第一次
set mapred.min.split.size =5000000000;
set mapred.max.split.size =10000000000;
set mapred.min.split.size.per.node=5000000000;
set mapred.min.split.size.per.rack=5000000000;
-----------------第二次
set mapreduce.input.fileinputformat.split.minsize =5000000000;
set mapreduce.input.fileinputformat.split.maxsize=10000000000;
set mapreduce.input.fileinputformat.split.minsize.per.rack=5000000000;
set mapreduce.input.fileinputformat.split.minsize.per.node=5000000000;
我的 hadoop 版本是 Hadoop 2.7.2 由 root 于 2016 年 7 月 11 日 10:58:45 编译 蜂巢版本是 连接到:Apache Hive(版本 1.3.0) 驱动:Hive JDBC(1.3.0版)
【问题讨论】:
-
(1)
hive.execution.engine? (2)DEFAULT.abc文件格式? -
hive.execution.engine=mr SerDe 库:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe 输入格式:org.apache.hadoop.mapred.TextInputFormat 输出格式:org.apache.hadoop。 hive.ql.io.HiveIgnoreKeyTextOutputFormat
-
你能确认你的执行引擎吗?是 tez 还是 mr ?
-
执行引擎是mr hive.execution.engine=mr