是否可以在Hadoop集群中的某些特定节点上调度任何map reduce工作,而不是所有节点?比如说,在10个可用节点中的4个从节点上。我尝试在Google上搜索,但没有找到任何相关结果。 This page表示默认情况下,所有作业都会在整个群集上进行调度。
我要求的原因:
我必须将分布式关系数据库实现为研究生级别的分配工作。我正在使用Hadoop,并且根据分配要求,我们必须将数据复制到集群的连接机器。现在,我们的一个复制模型要求在可用计算机的子集上运行查询。
答案 0 :(得分:0)
假设要处理hadoop集群上的一些数据,您已经提交了map reduce作业,现在它所做的是作业跟踪器,它通过为不同的任务跟踪器分配,监视和协调不同的任务来扮演主人的角色。
作业跟踪器将与namenode进行通信,该名称对于需要处理的数据,再次扮演主人的角色,因为namenode保存元数据的所有信息,因此它将提供所有特定数据所在的信息。就哪个块驻留在哪个数据节点到作业跟踪器而言。
作为hadoop框架的一部分,作业跟踪器将调用数据块所在的那些数据节点的任务跟踪器,该节点的最差场景任务跟踪器最接近某些数据块所在的datanode。
因此,总结一下,我们无法控制将使用哪些特定的机器,这些机器将取决于您的数据块驻留在该特定作业的位置。如果它位于4台机器中,那么当时将使用4台机器,如果10台机器将被使用