严格模式的设置:
set hive.mapred.mode=strict; #默认是nonstrict 非严格的
开启严格模式的作用:
一: 防止笛卡尔积的出现
笛卡尔积,如果表足够大,会出现不可控的情况,导致集群一直占着资源,可能会出现卡死状态;
二:防止分区表不使用分区字段进行过滤问题
一般情况下,使用分区表的数据量都会很大, 如果不使用分区字段进行过滤,执行的数据量过大,消耗资源巨大
三: 防止使用order by,不使用 limit 造成消耗大量资源问题
当使用order by 时, 必须强制使用limit 语句; 如果不使用 limit 可能会出现结果都使用一个reduce 进行处理,导致额外执行很长一段时间