hbase 之 monitoring

来源:互联网 发布:房间刮塑面积算法 编辑:程序博客网 时间:2024/06/15 18:34

首先我们下看一下hbase中的监控包:



监控都有哪些呢? 监控什么呢?

Hmaster  dump



监控的入口StateDumpServlet ,通过浏览器进行打印查看主要通过Hmaster界面和RegionServer界面我们看一下抽象类StateDumper的实现类:


先从MasterDumpServlet详细说,当请求/dump的时候进入MasterDumpServlet  doGet处理并打印信息:

1、打印version信息

2、打印MonitoredTask信息

TaskMonitor顾名思义 就是任务监控,

下面就先拿Hmaster 启动来说:

Hmaster 启动的时候会执行

MonitoredTask startupStatus =      TaskMonitor.get().createStatus("Master startup");

monitoredTask 就是被监控的任务,上面的流程就是 TaskMonitor 获得单例对象然后创建一个MonitoredTask。

TaskMonitor 主要管理两个主要任务,一个是MonitoredTask  (通过createStatus) 一个是MonitoredRPCHandler(通过createRPCStatus)

创建一个上述createStatus 主要创建了一个MonitoredTask 实例和一个动态代理类,但是动态代理类的Handle没做任何处理,然后将实例和放到弱引用中的动态代理组成taskpair,然后判断tasks 总数是不是超不过了1000,如果超过了1000就需要进行清理。


我们看一下monitoredTask ,看描述我们知道这个是一个被监控任务的声明周期,拿Hmaster启动来说,hmater启动过程就是一个被监控的任务即一个MonitoredTask(看上面的代码片段),那Hmater 启动的监控流程是怎么样的、下面我们看一下:

1、startupStatus.setDescription("Master startup"); // 任务描述2、startupStatus.setStatus("Trying to register in ZK as active master");  //任务状态3、startupStatus.setStatus("Successfully registered as active master."); //修改任务状态


至于总共有多少被监控任务可以通过打印出来的信息查看

以上只是启动的任务、会涉及到很多其它的任务,比如IPC等等涉及到包里面MonitoredRPCHandlerImpl类

3、打印在线的server信息。示例

Servers:===========================================================slaver007.xxx,60020,1396941155193: requestsPerSecond=0, numberOfOnlineRegions=4, usedHeapMB=114, maxHeapMB=966

4、打印Regions-in-transition。

5、打印Executors信息,参考前面文章http://blog.csdn.net/asdfasdfsadffds/article/details/21952003

6、打印线程信息、这个是调用hadoop的接口

7、打印Master配置

8、打印Recent regionserver aborts

9、打印 tailLogKb,这个涉及到monitoring 包下面的LogMonitoring类,tailKb 默认是100kb,也可以通过request 参数tailkb传递

我们再看一下RegionServer的RSDumpServlet、基本上和Hmaster 差不多只不过有一个打印队列信息的,主要是 compaction \ split queue  和 Flush queue






0 0
原创粉丝点击