oozie工作流中的Hive操作执行参数设置

时间:2015-09-08 06:00:28

标签: hadoop hive bigdata oozie

我正在使用Hive操作通过oozie执行查询。我将TEZ和MR设置为查询的执行引擎。如何建议执行查询的最大可能数量的reducer。目前,我正在使用'mapred.reduce.tasks',但它需要一个静态数字。

真正的问题是,当我在hive CLI上执行相同的查询时,Hive选择的reducers数量是最优的而不是1;所以我的oozie工作缺少什么设置,它会为所有查询选择1个reducer。

2 个答案:

答案 0 :(得分:1)

通常,控制Hive查询的reducers数量的理想方法是使用hive.exec.reducers.bytes.per.reducer属性。

默认值为1 GB,对于输入文件的每1gb大小,将调度一个reducer。

尝试根据预期的最大减速器数量相对减少此值。通过这种方式,您可以使用mapred.reduce.tasks属性消除设置减少器的静态数量。

答案 1 :(得分:0)

在oozie中运行配置单元操作时,应始终为/// Calculate median static int calculateMedian(TimeRecordNotifier timeRecordNotifier) { List<int> mList = List(); timeRecordNotifier.timeRecords.forEach((element) { mList.add(element.partialTime); }); //clone list List<int> clonedList = List(); clonedList.addAll(mList); //sort list clonedList.sort((a, b) => a.compareTo(b)); int median; int middle = clonedList.length ~/ 2; if (clonedList.length % 2 == 1) { median = clonedList[middle]; } else { median = ((clonedList[middle - 1] + clonedList[middle]) / 2.0).round(); } return median; } 设置配置属性。这将强制根据您的系统和可用资源创建最佳的减速器值。