DN启动“假死?”

上个周末线上突然2Datanode Server挂掉(panic原因调查中),后来机房人员重启后一个DN一直在pending住没有注册成功,日志卡在初始化没有任何输出,发现原来是一个DN线程阻塞住了另一个DN,细究如下:

线上 NN 启用了 HA 模式,因此 DN 在启动时会启动 2 BPServiceActor 线程对 2 NN 进行注册,其会调用 BPOfferService verifyAndSetNamespaceInfo 方法,而这个方法是同步方法(以防止 NPE ),因此当一个 BPServiceActor 进行注册时( FSDataSet 初始化,这个过程可能会比较慢),另一个线程会被 Block 住,这时 DN 的日志可能什么都没有输出,稍等会儿就 OK .
相关文章
相关标签/搜索