是否可以在Hadoop集群中的某些特定节点而不是所有节点上调度任何map reduce作业?例如,在10个可用节点中的4个从属节点上。我试着在谷歌上搜索,但没有找到任何相关的结果。该页面表示,默认情况下,所有作业都安排在整个集群上。
我提出要求的原因:
我必须实现一个分布式关系数据库作为研究生级别的作业。我使用Hadoop,根据分配要求,我们必须将数据复制到集群的连接机器上。现在,我们的一个复制模型要求在可用机器的子集上运行查询。
假设在hadoop集群上处理一些数据,您已经提交了一个map reduce作业,现在它所做的是作业跟踪器,它通过为不同的任务跟踪器分配、监视和协调不同的任务来扮演主控器的角色。
对于需要处理的数据,作业跟踪器将与再次扮演主机角色的namenode进行对话,因为namenode保存元数据的所有信息,因此它将根据哪个块驻留在哪个数据节点来向作业跟踪器提供特定数据驻留的所有信息。
作为hadoop框架的一部分,作业跟踪器将调用数据块所在数据节点的任务跟踪器,即最接近某些数据块所在的数据节点的节点的最坏情况任务跟踪器。
所以总结一下,我们无法控制将使用哪些特定的机器,这将取决于您的数据块在特定作业中的位置。如果它位于4台机器中,那么此时将使用4台机器,如果是10台,则将使用10台