你好,游客 登录 注册 搜索
背景:
阅读新闻

每日一搏 | HBase 之 HMaster 工作原理

[日期:2016-04-26] 来源:开源中国  作者: [字体: ]

HMaster

监控所有的RegionServer,一般运行在namenode

架构图

从图中可以看出,主要有External Interfaces、Executor Services、Zookeeper System Trackers、File System Interfaces、Chores和Others六部分组成

1. External Interfaces

查询regionserver机群状态

  • InfoServer, 一个jetty部署的web应用,默认端口 60010 ,查看集群状态。
  • RpcServer,提供rpc与master的通信方式,支持Writable和protobuf。
  • Master MXBean,提供JMX查询状态metrics,知道有就好,一般也用不上。

2. Executor Services

监听Zookeeper的消息队列,交给各种handler处理

  • Open Region Service,当master监测到一个region成功运行(通过ZK的watch机制),发送一个消息RS ZK REGION_OPENED给这个service,这个事件会触发OpenRegionHandler()方法。
  • Close Region Service,(同上,消息为:RS ZK REGION_CLOSED)
  • Server Operations Service, master检测到有region需要split,交给SplitRegionHandler处理,同时,master需要关闭一个region(非root或meta),发送一条消息:M SERVER SHUTDOWN ,交给ServerShutdownHandler处理
  • Meta Server Operation Service,当关闭的region是ROOT或者META的宿主机,
  • Table Operation Service,对表的删除、disable、enable、修改、创建,

3. Zookeeper System Trackers

master或者regionServer是通过zokeeper实现跟踪特定的消息事件

  • Active Master Manager,处理master的所有时间,包括master的选举
  • Region Server Tracker,维护region的一个list,挂载到/hbase/rs目录下,任何region的新增和删除,都在这个目录下
  • Drainning Server Tracker,region server退役之后,转变成draining Server挂载在/hbase_root/draining
  • Catalog Tracker,-ROOT或者.META
  • Cluster Status Tracker,集群是否正常启动
  • Assignment Manager,当master挂掉之后,可以通过这里找到过渡时期的region
  • Root Region Tracker,监控root的位置和状态变化
  • Load Balance,决定是否要在RegionServer之中移动Region
  • Meta Node Tracker
  • Master Address Tracker

4. File System Interfaces

与底层的文件系统打交道的接口

  • MasterFileSystem,抽象的一个文件系统
  • Log Cleaner,一个后台任务(chores),默认有两个TimeToLiveLogCleaner和ReplicationLogCleaner,可以自己实现,添加到配置中。
  • HFile Cleaner一个HBase内置的周期性的任务。默认有一个TimeToLiveHFileCleaner在执行,可以自己实现,添加到配置中。

5. Chores

一些后台自动运行的任务

  • Balancer Chore,用来平衡hdfs机群的datanode是否平衡,有一个可配置的阈值,一般是10%,会检查所有node的使用率,自动迁移blocks。
  • Catalog Janitor Chore,一个检查catelog的任务,查看未使用的regions,进行垃圾回收
  • Log Cleaner Chore(同上)
  • HFile Cleaner Chore (同上)

6. Others

其他

  • Server Manager,维护regionserver的信息,维护online和dead的server,处理regionServer的启动、关闭、死亡
  • Co-Processor Host,通用的框架和Hbase服务调用,自己实现hbase的二级索引的时候一般会用到。




收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款