您现在的位置是:首页 >技术交流 >hive执行sql:stage-1 map = 0 reduce = 0网站首页技术交流
hive执行sql:stage-1 map = 0 reduce = 0
执行hive连表时,出现这种情况:
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = root_20180824151434_b0b979fe-7a85-4ac6-b924-33dd40897a28
Total jobs = 3
Launching Job 1 out of 3
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1535114415498_0379, Tracking URL = http://master:8088/proxy/application_1535114415498_0379/
Kill Command = /opt/hadoop-2.7.4/bin/hadoop job -kill job_1535114415498_0379
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2023-04-24 15:14:57,985 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:15:58,823 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:16:59,579 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:18:00,262 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:19:00,912 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:20:01,566 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:21:02,214 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:22:02,841 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:23:03,480 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:24:04,120 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:25:04,711 Stage-1 map = 0%, reduce = 0%
2023-04-24 15:26:05,313 Stage-1 map = 0%, reduce = 0%
控制台一直输出 stage-1 map = 0 reduce = 0
一般有以下几种原因:
一、连表语句有误,产生笛卡尔积
二、Yarn资源不足,增加Yarn资源内存
解决方式:
修改yarn-site.xml中的yarn.nodemanager.resource.memory-mb值大小
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
三、其他
当 Hive 执行 SQL 时,它会将 SQL 语句转换为 MapReduce 任务,并且在第一阶段 (Map 阶段) 只会执行 Map 任务,不会执行 Reduce 任务。如果 Map 阶段的输出没有被正确地合并,则可能会导致第一阶段的 Map 任务输出为 0。因此,如果 Hive 执行 SQL 时显示“stage-1 map = 0 reduce = 0”,则表示第一阶段的 Map 任务没有产生任何输出,可能是因为输出被错误地合并或丢失了。
要解决这个问题,可以尝试以下方法:
-
检查 Hive 查询是否使用了正确的排序顺序,以确保 Map 阶段可以正确地合并输出。
-
检查 Hive 查询是否使用了正确的分组或过滤条件,以确保 Map 阶段可以正确地处理数据并产生输出。
-
检查 Hive 查询是否使用了正确的 MapReduce 框架,例如是否使用了正确的 MapReduce 版本或自定义的 MapReduce 函数。
-
检查 Hive 查询是否使用了正确的数据类型,以确保 Map 阶段可以正确地处理数据并产生输出。
-
检查 Hive 查询是否使用了正确的连接类型,以确保 Map 阶段可以正确地连接数据并产生输出。
-
如果以上方法都无法解决问题,则可以尝试升级 Hive 版本或使用不同的 MapReduce 框架。