2012-05-08 14 views
0

我在hadoop集群上运行Hive作业。我只是开始知道,如果你只专注于不同的行为映射器和减速器,性能将得到改善/改变。但直到我还没有玩过它。直到没有我玩过Hive并使用默认的mapper和reducer执行查询?在hadoop中执行作业时如何设置Mapper和Reducer以及如何决定?

正如我所了解的mapper和reducer一样,我很担心要设置mapper和reducer的值,以使性能得到改变。我也认为它只需要设置为主节点,或者我们必须为所有节点设置?

任何有想法的人都可以解释一下我的情况。

另外我们在执行作业时需要设置哪些其他参数?

+0

你的意思是设置映射器和减压器多少? –

+0

是。其实我试图设置它,但它并没有反映在各自的工作XML文件。每个作业创建它自己的XML文件。纠正我我错了。我检查我的日志,我找到了所有的环境变量,我hadoop设置在各自的XML中。 在哪里触发te命令来设置这些变量(设置mapred.map.tasks,.....)? am设置在/home/hadoop/hive-0.7.1/bin/hive -e'set mapred.map.tasks'?它是否正确? –

回答

1

根据我的理解,最好的数字映射器并不是您为每个作业设置的东西。 它由JobTracker计算,考虑每个节点的插槽数量(您在MapRed-site.xml中设置的集群范围,您拥有的拆分数量以及其他作业(如果您使用Capacity of Capacity Scheduler) - 排队参数为也考虑到了)。
减速器的数量会影响结果以及其可以在此设置每个作业。通过以下命令
集mapred.reduce.tasks = 128

+0

我所做的是我已经在路径上设置了这个值:“/home/hadoop/hive-0.7.1/bin/hive -e'set mapred.reduce.tasks = 128'”。 当我运行我的作业时,我发现作业的xml文件与我设置的值不同。其实我想提高工作执行的表现。所以我正在试图用mapper和reducer。 我想在mapred-site.xml中设置所有的值,以便它可以将这个属性反映到所有将要执行的作业。为此,我该怎么做?我应该在哪里执行这些命令(我的意思是路径)? –

+0

请看下面的答案(我的)http://stackoverflow.com/questions/10448204/how-to-increase-the-mappers-and-reducers-in-hadoop-according-to-number-of-instan/ 10469029#10469029 –

+0

公平的或(不)的容量调度程序,请。无法编辑此答案,因为少于6个字符。 :-( – zeekvfu

相关问题