如何避免regionServer宕机

如题所述

为什么regionserver 和Zookeeper的session expired? 可能的原因有
1. 网络不好。
2. Java full GC, 这会block所有的线程。如果时间比较长,也会导致session expired.
怎么办?
1. 将Zookeeper的timeout时间加长。
2. 配置“hbase.regionserver.restart.on.zk.expire” 为true。 这样子,遇到ZooKeeper session expired , regionserver将选择 restart 而不是 abort
具体的配置是,在hbase-site.xml中加入
<property>
<name>zookeeper.session.timeout</name>
<value>90000</value>
<description>ZooKeeper session timeout.
HBase passes this to the zk quorum as suggested maximum time for a
session. See http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions
“The client sends a requested timeout, the server responds with the
timeout that it can give the client. The current implementation
requires that the timeout be a minimum of 2 times the tickTime
(as set in the server configuration) and a maximum of 20 times
the tickTime.” Set the zk ticktime with hbase.zookeeper.property.tickTime.
In milliseconds.
</description>
</property>
<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
<description>
Zookeeper session expired will force regionserver exit.
Enable this will make the regionserver restart.
</description>
</property>
为了避免java full GC suspend thread 对Zookeeper heartbeat的影响,我们还需要对hbase-env.sh进行配置。

export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError \ -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"

修改成
export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError \ -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled \ -XX:+CMSInitiatingOccupancyFraction=70 \ -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseParNewGC -Xmn256m"

同时,当linux的maxfile设置过小时,scan多个列族也会造成regionServer宕机
温馨提示:内容为网友见解,仅供参考
无其他回答

HBase–RegionServer宕机恢复原理
最后,定期监控和维护,如通过平滑重启RegionServer来避免定期宕机,虽然问题未彻底解决,但掌握了这些方法,能更好地应对RegionServer故障。

regionserver的运行机制
3)RegionServer 下线 当 RegionServer 下线时,它和 zookeeper 的会话断开,ZooKeeper 而自动释放代表这台 server 的文件上的独占锁。Master 就可以确定,regionserver和zookeeper之间无法通行了,regionserver可能宕机了。

九、宕机恢复原理
3.3、Master重新分配宕机RegionServer上的region,将这些Region重新分配到其他可用的RS上。3.4、按照Region回放HLog 3.5、完成修复,对外提供服务 4、HLog切分大有学问 4.1、0.96版本之前的切分策略:Master单机切分HLog 4.1.1、将待切分的日志重命名,主要防止在某些情况下RS并没有真正宕机,但是Mast...

HBase宕机恢复-SplitWAL
处理:联系SA关机、重启机器,可以加速集群恢复 参考: http:\/\/hbasefly.com\/2016\/10\/29\/hbase-regionserver-recovering\/

[知识讲解篇-155]HBase最佳实践-客户端超时机制
在实际使用中,如果在扫描过程中遇到RegionServer端抛出的leaseException,这与HBase的租约机制有关。租约机制是为了防止在客户端意外宕机时,服务器端的资源得不到释放。RegionServer在接收到第一次RPC请求时,会生成全局唯一的scanId和超时时间的lease,如果在超时时间内后续请求未到达,则会认为客户端异常,...

HBase 写性能优化
说到这里,有必要和大家分享两起在生产线环境因为业务KeyValue较大导致的严重问题,一起是因为大字段业务写入导致其他业务吞吐量急剧下降,另一起是因为大字段业务scan导致RegionServer宕机。 案件一:大字段写入导致其他业务吞吐量急剧下降 部分业务反馈集群写入忽然变慢、数据开始堆积的情况,查看集群表级别的数据读写QPS监...

leveldb(3) 元数据
为了避免进程崩溃或机器宕机导致的数据丢失,LevelDB需要将元信息数据持久化到磁盘,承担这个任务的就是 Manifest 文件。可以看出每当有新的Version产生都需要更新Manifest,很自然的发现这个新增数据正好对应于VersionEdit内容。在Manifest中的一次增量内容称作一个Block,其内容如下:记录了向leveldb中写入的记录...

zookeeper部署
奇数节点的集群更为理想,因为偶数节点无法满足集群宕机超过半数才能导致整体服务中断的机制。每台Zookeeper服务器应配置大约1GB的内存,如果条件允许,最好为每个节点配备独立的磁盘,这样可以确保Zookeeper服务的高效运行。特别需要注意的是,当集群负载较大时,应避免将Zookeeper服务与RegionServer部署在同一台...

SnapshotScanMR的思考与问题(一)
根据盐值的不同,数据会被分散到各个不同的RegionServer节点上(ps:就是hash散列一样)。在入库的时候就是往多台机器同时插入数据,检索也是同时多台机器同时检索,这大大提升了入库和检索的效率且可以在一定程度上有效的避免数据热点问题。在使用Phoenix的时候,Phoenix会屏蔽加盐值和去盐值的过程,在...

列存储的特点及应用场景有哪些?
在数据插入或删除时,首先写入WAL,然后加载到MemStore,刷写到HFile。即使Region宕机,操作未完全执行,重启时也可从WAL恢复。HBase读写流程与HDFS紧密集成:读写操作通过ZooKeeper实现,无需关注Master,直接从RegionServer进行数据增删查。写流程涉及WAL、MemStore和HFile等关键步骤,确保数据可靠性。HBase实现...

相似回答