根据 Hdfs Federation 上的 Apache 文档, 系统可通过多个名称节点的联合进行隔离扩展。
多个名称节点/ namespace
为了横向扩展名称服务,联邦使用多个独立的名称节点/ namespace 。名称节点是联合的; Namenodes是独立的,不需要相互协调。 Datanodes被所有Namenodes用作 block 的公共(public)存储。
我唯一的疑问:
我没有看到名称节点之间有任何中央协调器,因为所有节点都在运行隔离。对如何提交和处理作业感到困惑。
1) 如果我提交一个 map-reduce 作业,哪个名称节点将处理它?或者
2) 客户端是否应该知道必须为其提交作业的名称节点?
如果客户端不知道哪个名称节点,则应该有一些“主名称节点”来负责将作业分配给特定的名称节点。
它是如何工作的?
提前致谢。
最佳答案
Hadoop 联邦是 HDFS 的一部分。 map-reduce 程序执行等,由 yarn 监控。
Yarn 有一个资源管理器来处理作业。资源管理器可以与名称节点(在本例中为所有三个节点)通信并获取数据所在的地址。这是 NameNode 出现的唯一一点。
所以客户端不需要向NameNode提交作业。他会将其提交给资源经理。
关于hadoop - HDFS 联邦 : Submission of Map Reduce jobs among multiple Name nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313579/