我需要在Hive中进行连接操作时设置reducer的数量。我不想为每个连接作业设置相同数量的reducer。我怎么能提到它作为一个论点?提前谢谢。
答案 0 :(得分:14)
在脚本文件的顶部,输入:
set mapred.reduce.tasks=128
答案 1 :(得分:0)
目前执行此操作的唯一方法是将一个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工作流程。