我们正在开发cdh集群,我们有一个集群的客户端节点,它为各种hdfs服务安装了网关。客户端和集群都是AWS上的unix机器。我们使用crontab在客户端计算机上安排了作业。该系统自4 - 5年开始投入生产,我们拥有庞大的数据和代码。所以我在应用程序中的单点故障是客户机。即使我们拥有AWS的功能,也可以保留99.99%的案例。我们仍然希望添加一个节点作为客户端,以实现系统的高可用性。 现在我们无法在两个客户端节点上并行运行作业,否则它将在HDFS中复制数据。
为此,我们一次将一个节点视为活动节点并保持其他被动节点。通过被动,我们的意思是所有的crons都会在被动节点上发表评论。 现在出现因网络故障导致切换的问题。
假设我的主动节点退出网络并且HA实现将使其成为被动(将来通过注释crontab不会运行作业)并使另一个活动。 现在5分钟后它回到网络中,然后已经运行的作业继续运行,我们需要通过搜索所有作业并使用kill命令手动终止它们。
有人能为这个问题提出更好的解决方案,或突出上述方法中的任何缺陷吗?