2016-06-21 42 views
0

我想实现在Namenode中运行的协调器服务。为Hadoop实现协调器服务

因此,当地图任务完成任务时,它会向namenode发送反馈,以通知“机器(x.x.x.x)已处理块ID ...属于文件...”。 Namenode会将这些信息保存在表格中(例如)。

我知道这种问题太笼统,但实际上现在我陷入了这个问题。

我可以在Hadoop中实现此功能吗?我该怎么做?任何人都可以给我理想或以前做过的类似任务吗?

+0

Namenode具有审核日志,记录谁打开了哪个文件路径。通过文件路径,您可以知道块ID。 – waltersu

+0

我的目标是如何在地图任务完成时实现从数据节点到名称节点的反馈。可能吗? – nd07

+0

没有。 HDFS是一个独立的项目。你需要在你的地图缩减工作中做到这一点。 – waltersu

回答

0

您需要一个接收通知并将其存储在某个位置(可能是其他服务或MQ)的服务,如果此服务在NameNode或集群外部的服务器上运行,则无关紧要。只是说NameNode是集群中最关键的一点,我真的不建议使用它来部署任何附加服务。

然后,您将需要覆盖清理地图任务完成后发送“地图任务已完成”消息的方法。

或者您可以尝试使用Hadoop ResourceManager API来查看是否存在您正在查找的信息,而只是轮询该API而不是创建新的信息。