DN启动“假死?”

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

线上 NN 启用了 HA 模式,因此 DN 在启动时会启动 2 BPServiceActor 线程对 2 NN 进行注册,其会调用 BPOfferService verifyAndSetNamespaceInfo 方法,而这个方法是同步方法(以防止 NPE ),因此当一个 BPServiceActor 进行注册时( FSDataSet 初始化,这个过程可能会比较慢),另一个线程会被 Block 住,这时 DN 的日志可能什么都没有输出,稍等会儿就 OK .
相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院