作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在执行多个PIG脚本,例如script1,script2,script3,script4。因为我script1独立执行,而script2,3,4在脚本执行后并行执行。
我正在提供7-8 GB大小的输入文件。因此,在执行script1之后,我观察到不是并行执行脚本2、3、4,而是正在执行script2,因为它消耗了33-35个映射器。其他保留在队列中(意味着script3,4尚未获得映射器分配)。因此,执行所有脚本需要太多时间。
所以我在想的是,如果我能够为每个脚本设置映射器的限制,那么执行wll的时间可能会更少,因为所有脚本都可以分配映射器。
那么,有什么方法可以将特定数量的映射器分配给多个脚本?
最佳答案
如果正确设置了映射号(根据您的核心/节点和磁盘/节点值),那么使用1个作业消耗所有映射,或者使用N个作业消耗MapNumber / N个映射将得到相同的结果。但是,如果您真的想在一定数量的工作上分配 map ,则可以设置每个工作 map 编号(我认为mapreduce.job.maps
中的mapred-site.xml
)。
考虑到您仍然有空闲的映射槽,有一些配置可以使作业并行执行,如此处所述:Running jobs parallely in hadoop
如果您提供了一个job.xml,其中您将 map 号设置为hadoop命令,那么您还可以为每个作业设置一个 map 号(即使我不确定它是否确实有效)。
关于hadoop - 如何在Hadoop中为多个作业分配特定数量的映射器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826773/
我是一名优秀的程序员,十分优秀!