mapred.job.queue.name 的用例

Posted

技术标签:

【中文标题】mapred.job.queue.name 的用例【英文标题】:Usecases for mapred.job.queue.name 【发布时间】:2014-01-03 16:10:14 【问题描述】:

使用 map reduce 作业队列的实际用例是什么,即mapred.job.queue.name 属性的值。我看到 default 总是被用作值。

【问题讨论】:

【参考方案1】:

mapred.job.queue.name 用于将作业分配给特定队列。默认情况下,所有作业都进入“默认”队列。但是,可以创建分层队列。比如root、root.q1、root.q1.q1a等等。 这些队列中的每一个都可以有自己的一组属性来确保特定的优先级。

当您有多个利益相关者要求提供关于同一组基础架构的报告时,一个真实的场景是。例如,在我的工作地点,我们有数据科学家试图进行各种研究工作,客户支持团队寻找各种每日和每周数据,然后还有支持日常业务的真实工作。核心是基础设施应该能够提供最好的支持。 拥有具有不同优先级的各种队列只会让 Hadoop 轻松决定当处理器可用时下一步该做什么,或者它可以使用多少。

因此数据科学家将分配到“数据分析师”队列,营销团队将分配到“营销”队列。可以根据一天中的时间更改队列的优先级。

【讨论】:

+1 所以我认为“优先化”是用例之一。还有更多吗? 除了优先级,它还定义了执行的顺序。因此,如果您在队列中有两个工作。直到 Job1 完成或 Job1 中没有任何东西可以使用可用的处理器,Job2 才会启动。 您对通过队列控制安全性有什么见解吗? hadoop.apache.org/docs/r1.0.4/mapred-default.html 我能看到的唯一安全方面是,您可以这样配置,来自用户 A 的作业将始终转到 QueueA,而来自用户 B 的作业将始终转到 QueueB....如果您希望将其视为任何级别的安全性。此外,用户 A 可能只能访问 QueueA...【参考方案2】:

Map/Reduce 系统始终支持至少一个默认名称的队列。因此,此参数的值应始终包含字符串默认值。 Hadoop 中支持的一些作业调度程序,例如容量调度程序,支持多个队列。如果正在使用这样的调度程序,则必须在此处指定配置的队列名称列表。定义队列后,用户可以使用作业配置中的属性名称 mapred.job.queue.name 将作业提交到队列。可能有一个单独的配置文件用于配置由调度程序管理的这些队列的属性。有关相同信息,请参阅调度程序的文档。

参考:http://hadoop.apache.org/docs/r0.19.1/cluster_setup.html

【讨论】:

以上是关于mapred.job.queue.name 的用例的主要内容,如果未能解决你的问题,请参考以下文章

Scala 中流的用例

FutureProvider 的用例

cudaGraphicsGLRegisterImage中cudaGraphicsRegisterFlagsWriteDiscard的用例是啥?

外部表的用例?

bash中noop [:]的用例是啥?

UML的用例图