hbase中对deadserver处理存在的问题
生活随笔
收集整理的這篇文章主要介紹了
hbase中对deadserver处理存在的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
hbase在一個regionServer死掉后,即使重啟了這個server,deadlist中也不會去掉原先死去的deadserver。
例如:
Java代碼
hbase shellstatus
5 servers, 0 dead, 6.2000 average load停掉其中一個節點
Java代碼
hbase-daemon.sh stop regionserver然后
Java代碼
hbase shellstatus
4 servers, 1 dead, 6.2000 average load再立即重啟該節點:
Java代碼
hbase-daemon.sh start regionserver此時回到shell中
Java代碼
hbase shellstatus
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中对deadserver处理存在的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启动namenode报错:Journal
- 下一篇: 解决HBase RegionServer