【发布时间】:2012-03-05 04:22:14
【问题描述】:
我需要在 Hive 中进行连接操作时设置减速器的数量。我不想为我拥有的每个加入作业设置相同数量的减速器。我怎么能提到它作为一个论点?提前致谢。
【问题讨论】:
我需要在 Hive 中进行连接操作时设置减速器的数量。我不想为我拥有的每个加入作业设置相同数量的减速器。我怎么能提到它作为一个论点?提前致谢。
【问题讨论】:
在脚本文件的顶部,放这个:
set mapred.reduce.tasks=128
【讨论】:
目前执行此操作的唯一方法是将您的一个 Hive 脚本拆分为多个部分,其中重连接将放在不同的脚本中。然后对于重连接,您可以指定大量的减速器。要一次性执行所有这些脚本,您可以将hive -f 选项与 shell 脚本中列出的所有脚本一起使用,如下所示:
#example of shell script RunMyHQL.sh
$HIVE_HOME/bin/hive -f /somepath/script1.hql
$HIVE_HOME/bin/hive -f /somepath/script2.hql
$HIVE_HOME/bin/hive -f /somepath/script3.hql
然后为 RunMyHQL.sh 文件分配适当的权限
chmod u+x /somepath/RunMyHQL.sh
然后执行shell脚本
./RunMyHQL.sh
script1、script2 和 script3 中的每一个都可以包含所需数量的映射器和化简器。如果这需要以特定的时间间隔反复运行,那么我建议您实施 Oozie 工作流程。
【讨论】: