为什么HQL中设置SET mapreduce.job.maps = 10没有生效
时间: 2024-02-09 12:13:24 浏览: 104
setProperties方法-T21.8_HQL java 经典教程 经典教材
在Hive中,使用SET语句设置MapReduce作业的属性值时,需要注意以下几点:
1. SET语句必须放在HQL语句之前,否则不会生效。
2. SET语句只对当前的HQL语句生效,不会影响其他的HQL语句。
3. SET语句设置的属性值可能会被Hadoop集群的配置文件中的属性值覆盖。
因此,如果使用SET语句设置MapReduce作业的属性值没有生效,可能是由于上述原因导致的。可以尝试将SET语句放在HQL语句之前,并检查Hadoop集群的配置文件中是否存在同名的属性,以确定属性值是否被覆盖。
另外,有时候使用SET语句设置MapReduce作业的属性值可能会被Hive忽略,可以尝试在HQL语句中使用以下语法来设置属性值:
```sql
SELECT /*+ MAPJOIN(b) */ column1, column2 FROM table1 a JOIN table2 b ON a.key = b.key;
```
该语法中的MAPJOIN提示Hive使用Map端连接来执行Join操作,并可以设置Map端的并行度,等价于设置了mapreduce.job.maps属性的值。
阅读全文