我想实现一个在Namenode中运行的协调器服务。
因此,当地图任务完成任务时,它会向namenode发送反馈,以通知" Machine(x.x.x.x)已处理的块ID ...属于文件..."。 Namenode将在表中维护这些信息(例如)。
我知道这种问题太笼统但实际上我现在陷入了困境。
我可以在Hadoop中实现此功能吗?我该怎么做?任何人都可以给我理想或以前做过的类似任务吗?
答案 0 :(得分:0)
您需要一个接收通知并将其存储在某个地方(可能是休息服务或MQ)的服务,无论此服务是在NameNode上还是在群集外的服务器上运行都无关紧要。只是说NameNode是群集中最关键的一点,我真的不建议使用它来部署任何其他服务。
然后,您需要覆盖清理 Map的方法,以便在Map任务完成后发送“map task completed”消息。
或者您可以尝试使用Hadoop ResourceManager API来查看是否有您要查找的信息,只是轮询该API而不是创建一个新的。