hbase-daemon.sh中停止RS的脚本如下:
if [ -f $pid ]; then # kill -0 == see if the PID exists if kill -0 `cat $pid` > /dev/null 2>&1; then //判断进程是否存在 echo -n stopping $command echo "`date` Terminating $command" >> $loglog kill `cat $pid` > /dev/null 2>&1 //kill,RS接受到stop信号,开始处理stop工作 while kill -0 `cat $pid` > /dev/null 2>&1; do //等待RS进程退出,退出前每隔1秒打印一个”.” echo -n "." sleep 1; done rm $pid echo else retval=$? echo no $command to stop because kill -0 of pid `cat $pid` failed with status $retval fi else echo no $command to stop because no pid file $pid fi ;; |
在启动RS时会使用HRegionServer对象通过Runable.addShutdownHook()方法注册一个jvm退出钩子,当RS进程被非强制kill时会执行HRegionServer的stop()方法,在stop()方法中重点是设置valotile变量stopped=true,在HRegionServer的run()方法的while循环中,发现stopped=true则退出循环,执行stop工作,比如:关闭RPC服务,关闭Region,关闭compact和split等线程池(最长等待60s),从zk中清除对应的节点等工作。
由于RS中很多线程,包括HRegionServer自身就是一个Runable的实现类,这些线程必须确保执行完成,hbase是通过线程的join()方法实现的,当调用join()方法后,会阻塞退出钩子的线程,直到所有线程都执行完成才会完成真正的退出,操作系统才会完成kill。
关于jvm的退出钩子在使用时需注意两点:
1、在设置stop变量后,需通过join()或者一些方式确保当前任务已经执行完
2、如果线程中有wait() 或者sleep(),则需停止等待或者休眠,避免无谓的时间消耗影响退出速度。
相关推荐
NULL 博文链接:https://bnmnba.iteye.com/blog/2322332
主要介绍了HBase RegionServer与Zookeeper间的交互过程,阐述RegionServer崩溃后的恢复机制,并在此基础上提出了几点优化的恢复措施。优化后的恢复措施大大缩短了RegionServer崩溃后的故障恢复时间和业务中断时间,...
13.hbase的工作机制补充--regionserver数据管理--内存缓存热数据--持久化到hdfs的观
hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,...
HBase配置
其中Regionserver负责数据的读写服务。用户通过沟通Regionserver来实现对数据的访问。HBaseHMaster负责Region的分配及数据库的创建和删除等操作。ZooKeeper作为HDFS的一部分,负责维护集群的状态(某台服务器是否...
HBase的架构是依托于Hadoop的HDFS作为最基本存储基础单元,在HBase的集群中由一个Master主节点管理多个RegionServer,而ZooKeeper进行协调操作。 HBase的体系结构是一个主从式的结构,主节点HMaster在整个集群当中...
apache-atlas-2.2.0-server.tar.gz
从物理结构上讲,HBase由三种类型的服务器构成主从式架构。RegionServers为数据的读取和写入提供...RegionServer和HDfsDataNode并置在一起,这使得RegionServers所服务的数据具有数据局部性(使数据接近需要的位置)。
从regionserverweb页面可以看到block cache的情况:1.1.3.3 读写请求数通过读写请求数可以大概看出每台regionServer的压力
CDH版本:cdh5.1 java:jdk7u67(64位) HBase模式:伪分布式裸露端口动物园管理员服务器:2181 hbase-master:65000 hbase-master Web UI:65010 hbase-regionserver:65020 hbase-regionserver Web UI:65030如何...
创建表 Master 发送命令给 RegionServer @后面的ip为127.0.0.1 则表示暂时不创建副本create table [tableNa
./hbase-deamon.sh start zookeeper//只针对有zookeeper的regionserver而且是机子需要重启的情况 5.处理hbase的master宕机的办法 ./hbase-daemon.sh start master ./hbase-daemon.sh start zookeeper//可选 6.完全...
Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 A:加上选项 -fixAssignments 解决 Q:如果一个region在META表中,并且在regionserver的online region集合中,但是...
Client是整个HBase系统的入口客户端使用RPC协议与HMaster和RegionServer进行通信对于管理类(表的增删)操作,Client与HMaster进行RPC通信对于数据读写类操作Client与RegionServer进行RPC交互客户端可以是多个,也...