hadoop - 是否可以选择特定的机器来运行特定类型的 hadoop 作业?

标签 hadoop

据我了解,hadoop 架构认为所有机器都与能够在集群中的所有和任何机器上运行的任何任务/作业相同。

有没有办法更改此模型以将某些机器标记为具有某些功能,然后只选择具有作业所需功能的机器来运行该作业?

最佳答案

想出了这个。因为我使用的是 FairScheduler,所以那里有一个扩展点,允许我通过编写一个实现 LoadManager 接口(interface)的简单类来实现我的目标

根据http://hadoop.apache.org/common/docs/current/fair_scheduler.html , FairScheduler 使用在 mapred.fairscheduler.loadmanager 配置属性中指定的类的实例(默认为 CapBasedLoadManager)。 LoadManager 接口(interface)提供了方便的方法

boolean canLaunchTask(TaskTrackerStatus tracker, JobInProgress job,  TaskType type)

这允许我拥有自定义逻辑来允许或拒绝特定作业在特定任务跟踪器上运行。问题解决了。

经验教训:阅读源代码很有用。

关于hadoop - 是否可以选择特定的机器来运行特定类型的 hadoop 作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478946/

相关文章:

hadoop - Hbase:如何为 Hbase master 指定主机名

java.lang.IllegalAccessError : cannot access its superinterface 错误

hadoop - Hbase 和 apache drill 存储插件

java - 无法在Pig中使用最大值和求和函数

hadoop - 如何创建从 Hive 表到关系数据库的数据管道

hadoop - mapreduce 作业未正确设置压缩编解码器

hadoop - Hive/Beeline,如何设置作业.staging目录?

hadoop - 可以只安装 Hadoop HDFS 吗?

hadoop - 无法开始mapreduce作业

hadoop - 如果集群中map任务比node少怎么办?