我们正在开发一个Web服务器,允许用户提交spark作业来运行hadoop集群,Web服务器将帮助创建一个新的集群并继续监控该作业。
我们将Web服务器部署在3个节点中,并在其前面放置了一个装载机平衡器。 高可用性要求是,一旦用户提交了作业,必须有一台服务器继续监视它,如果服务器完成,则另一台服务器应该执行此任务并监视作业,这样它对用户没有任何影响
有没有建议的方法呢?我能想到的是将所有作业信息放到一些中央存储器(数据库中的一个表)中,并且所有服务器都使用分布式锁来保持从表中轮询作业信息,以确保每个服务器只有一个并始终是一个服务器锁表中的一行,因此监视该工作。
答案 0 :(得分:0)
看起来像hazelcast解决方案听起来不错。 high availability singleton processor in Tomcat
在AWS中进行检查时仍然检查这是否是最佳的。