`
无尘道长
  • 浏览: 160512 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

停止RegionServer服务的大致逻辑

阅读更多

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  //killRS接受到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时会执行HRegionServerstop()方法,在stop()方法中重点是设置valotile变量stopped=true,在HRegionServerrun()方法的while循环中,发现stopped=true则退出循环,执行stop工作,比如:关闭RPC服务,关闭Region,关闭compactsplit等线程池(最长等待60s),从zk中清除对应的节点等工作。

由于RS中很多线程,包括HRegionServer自身就是一个Runable的实现类,这些线程必须确保执行完成,hbase是通过线程的join()方法实现的,当调用join()方法后,会阻塞退出钩子的线程,直到所有线程都执行完成才会完成真正的退出,操作系统才会完成kill

关于jvm的退出钩子在使用时需注意两点:

    1、在设置stop变量后,需通过join()或者一些方式确保当前任务已经执行完

    2、如果线程中有wait() 或者sleep(),则需停止等待或者休眠,避免无谓的时间消耗影响退出速度。

分享到:
评论

相关推荐

    hbase 启动regionserver日志报错: Wrong FS: hdfs:// .regioninfo, expected: file:///

    NULL 博文链接:https://bnmnba.iteye.com/blog/2322332

    HBase数据读取流程解析-1——Client-Server交互逻辑.pdf

    首先,客户端通过配置文件中的Zookeeper地址建立连接,Zookeeper在这里扮演着服务发现的角色。客户端会获取到`/meta-region-server`节点的信息,这个节点包含了HBase元数据表(HBase:meta)所在的RegionServer地址和...

    HBase配置

    配置`hbase.regionserver.heapsize`和`hbase.master.heapsize`以设定RegionServer和Master的Java堆大小,根据集群规模适当调整。 7. **Region分裂策略** `hbase.hregion.max.filesize`定义一个Region的最大大小,...

    HBase集群中RegionServer崩溃后的快速恢复措施探索

    主要介绍了HBase RegionServer与Zookeeper间的交互过程,阐述RegionServer崩溃后的恢复机制,并在此基础上提出了几点优化的恢复措施。优化后的恢复措施大大缩短了RegionServer崩溃后的故障恢复时间和业务中断时间,...

    HBase项目文档

    删除节点时,需要停止RegionServer,然后将其从集群中删除。 六、增加磁盘 增加磁盘需要使用HBase的RegionServer来实现。增加磁盘时,需要将新的磁盘添加到RegionServer中,然后重新启动RegionServer。 七、遇到...

    分布式minisql个人报告-裴睿韬-31901060871

    在 Client 端,设计了与 Master 和 RegionServer 通信的逻辑,确保 SQL 请求能够正确路由和执行。 10. **项目管理**:项目使用 Git 进行版本控制,通过 .gitignore 文件排除不必要的文件,Readme 文件提供项目简介...

    apache-atlas-2.2.0-server.tar.gz

    Apache ZooKeeper则是一个分布式的、开放源码的协调服务,为分布式应用提供一致性服务。这两个技术在云原生环境中都有着广泛的应用。 Apache Atlas 2.2.0版本的发布,带来了对大数据环境更强大的管理和治理能力。这...

    13.hbase的工作机制补充--regionserver数据管理--内存缓存热数据--持久化到hdfs的观察.mp4

    13.hbase的工作机制补充--regionserver数据管理--内存缓存热数据--持久化到hdfs的观

    hbase性能调优

    `hbase.regionserver.global.memstore.upperLimit` 和 `hbase.regionserver.global.memstore.lowerLimit` - **含义**:分别定义了RegionServer所有MemStore占用内存的比例上限和下限。 - **默认值**:分别为0.4和...

    HBase多租户.pdf

    RegionServer Group即是一组RegionServer的集合,这些RegionServer被配置为共同工作以服务特定的租户。通过将Region分配到特定的RegionServer Group,可以对数据流进行分区,从而达到资源隔离的目的。 在文档中提到...

    HBase Introduction

    - **主节点与子节点**:HBase集群包括一个HMaster作为主节点,多个RegionServer作为子节点,以及用于协调服务的ZooKeeper集群。 - **数据分布**:每个RegionServer负责管理一组区域。这些区域可以在物理上均匀地分布...

    基于HBase的大数据架构下负载平衡技术.zip

    当RegionServer出现故障时,Zookeeper会通知Master进行Region重新分配,确保服务的连续性。 5. **客户端负载均衡**:客户端在写入数据时,通常会根据RowKey的哈希值选择合适的RegionServer,但这可能导致热点问题。...

    HBase 系统架构

    3. **ZooKeeper**:协调集群中的各个节点,提供分布式一致性服务,如选举 Master,管理 RegionServer 的注册信息,以及存储表和 Region 的元数据。 4. **Region**:HBase 中数据存储的逻辑分区,每个 Region 包含一...

    HBase应用最佳实践详解.pdf

    * hbase-daemon.sh stop regionserver:停止RegionServer进程 * create:创建表 * put:插入数据 * describe:查看表结构 * alter:修改表结构 * disable:禁用表 * drop:删除表 * compact:compact表 * balancer:...

    尚硅谷大数据技术之HBase1

    启动master和regionserver服务的命令分别为`bin/hbase-daemon.sh start master`和`bin/hbase-daemon.sh start regionserver`。需要注意的是,如果集群节点之间的时间不同步,可能会导致regionserver启动失败,此时...

    hbase_3_2_0-regionserver-2.4.13-1.el7.x86_64.rpm

    Ambari+Bigtop 一站式编译和部署解决方案 https://gitee.com/tt-bigdata/ambari-env

    Cloudera集群升级参考资料

    - 如果HDFS、HBase、Hive、Hue的navigator audit功能开启,需分别停止HDFS的namenode、HBase的master和regionserver、Hiveserver2以及Hue的beeswax server,以防止在升级过程中发生数据丢失或不一致。 - 接着,...

    hbase-0.94.27.tar.gz

    8. **Coprocessors**:HBase引入了Coprocessors机制,允许用户在RegionServer端自定义计算逻辑,实现数据过滤、索引等功能,提高性能和数据处理灵活性。 9. **HBase Shell**:HBase自带了一个命令行工具,用户可以...

    hbase-0.90.5.rar

    4. **Zookeeper**:HBase依赖Zookeeper进行协调和服务发现,Zookeeper维护Master和RegionServer的状态信息,确保系统的高可用性。 5. **HDFS存储**:HBase的数据默认存储在HDFS上,提供容错性和高可用性。每个...

    网易视频云技术分享_HBase优化实战.pdf

    4. RegionServer 配置问题:HBase 的 RegionServer 配置不合理,导致某些 RegionServer 的请求数量非常高,而其他的请求数量非常低。解决方法是优化 RegionServer 的配置,确保每个 RegionServer 的请求数量都是均匀...

Global site tag (gtag.js) - Google Analytics