设为首页 加入收藏

TOP

hbase中对deadserver处理的问题
2019-05-02 01:45:58 】 浏览:65
Tags:hbase 中对 deadserver 处理 问题

hbase在一个regionServer死掉后,即使重启了这个server,deadlist中也不会去掉原先死去的deadserver。

例如:

Java代码

hbase shell

>status

5 servers, 0 dead, 6.2000 average load

停掉其中一个节点

Java代码

hbase-daemon.sh stop regionserver

然后

Java代码

hbase shell

>status

4 servers, 1 dead, 6.2000 average load

再立即重启该节点:

Java代码

hbase-daemon.sh start regionserver

此时回到shell中

Java代码

hbase shell

>status

5 servers, 1 dead, 6.2000 average load

根本原因是在ServerManager中处理时只有add而没有remove,当然deadlist值有一个上限由hbase.master.maxdeadservers决定,默认为100:

Java代码

public synchronized boolean add(String e) {

this.numProcessing++;

// Check to see if we are at capacity for dead servers

if (deadServerList.size() == this.maxDeadServers) {

deadServers.remove(deadServerList.remove(0));

}

deadServerList.add(e);

return deadServers.add(e);

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HBase基本API操作(有图有真相) 下一篇从Hbase传输数据到Hdfs

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目