浅谈hadoop脑裂问题

1.什么是脑裂:

脑裂是Hadoop2.X版本后出现的全新问题,从字面意思我们可以理解为“大脑分裂”;我们想一下,当一个正常人,突然出现有了两个大脑,而且这两个大脑都有自己的意识,对于这个人来说肯定是灾难性问题。同理,在Hadoop中,为了防止单点失效问题而出现了两个namenode(HA机制),这两个namenode正常情况下是起到一个失效,另一个代替的作用,但在实际运行过程中很有可能出现两个namenode同时服务于整个集群的情况,这种情况称之为脑裂。

 

2.为什么会出现脑裂:

脑裂通常发生在主从namenode切换时,由于ActiveNameNode的网络延迟、设备故障等问题,另一个NameNode会认为活跃的NameNode成为失效状态,此时StandbyNameNode会转换成活跃状态,此时集群中将会出现两个活跃的namenode。因此,可能出现的因素有网络延迟、心跳故障、、设备故障等。

 

3.怎么解决脑裂问题:

①新增一条心跳线,防止namennode状态无法正常传达。

②使用隔离机制,通过调用活跃节点中的隔离方法,让其主动转换为standby状态,如果该方法失效则使用远程调用执行kill -9 命令杀死相应进程,如果该方法仍然无法成功隔离,管理人员可以事先在每台namenode节点中编写一个shell脚本,当出现脑裂问题时,执行该脚本来切断电源,已达到隔离目的。

 

你可能感兴趣的:(hadoop)