多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 服務器 > 通過 JMX 獲取Hadoop/HBase監控數據

通過 JMX 獲取Hadoop/HBase監控數據

來源:程序員人生   發布時間:2015-04-23 07:47:12 閱讀次數:4957次


概述

說到對Hadoop和 HBase的集群監控,大家知道的和用的最多的可能還是第3方的監控工具,cacti,ganglia,zabbix之類的。玩的深1些的,會用 zenoss之類的。這些工具確切不錯,也能發揮很大的作用,但時間長了總感覺監控粒度還是比較粗,不夠詳細。畢竟是第3方的監控,即使Hadoop自帶 了ganglia的接口,也還是覺得不夠。

其實Hadoop本身是帶有監控接口的,各公司的發行版還有自己定制的接口,不過可能知道的人就不太多了。

其實這個接口特別簡單,但是非常詳細,也非常方便,就是JMX。

Hadoop的http監控端口基本所有人都知道,namenode 50070,jobtracker 50030,datanode 50075,tasktracker 50060。不過當用戶訪問這些端口的時候,會自動跳轉到dfshealth.jsp或jobtracker.jsp這樣的監控頁面。jmx的訪問很簡 單,只需要把網頁的名字換成jmx就能夠了。

例如

http://your_namenode:50070/dfshealth.jsp的地址替換成http://your_namenode:50070/jmx

便可,其他如50030,50060等等,也順次類推,HBase的系統信息也能夠用這類方法獲得。

返回值全部是JSON,非常便于自己進行處理。返回的信息也非常詳細,內存狀態,內存池狀態,java堆信息等等。乃至還有操作系統信息,版本,JVM版本信息等等,很全面。



實現

對http://your_namenode:50070/jmx 這樣地址的數據訪問可以通過HttpClient進行數據訪問,再將得到的數據通過

由于返回的Json數據量很大,而且基本上不可能全部需要,對這類情況可以通過添加?qry方式取得部份數據,

例如http://your_namenode:60010/jmx?qry=Hadoop:service=HBase,name=Master,sub=Server


Maven配置:

<dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version> </dependency>



Java類

該程序以取得Hbase的監控數據為例,關于HDFS的監控數據相似

/** * 作為HBase Master監控信息的source * * @author aihua.sun * @date 2015/4/6 * @since V1.0 */ import com.eric.agent.flume.model.HMasterRoleInfo; import com.eric.agent.utils.AgentConstants; import com.eric.agent.utils.MetricDataUtils; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HBaseMasterDataProvider{ protected final Logger LOGGER = LoggerFactory.getLogger(getClass()); private static final String server = "Hadoop:service=HBase,name=Master,sub=Server"; private static final String assignment = "Hadoop:service=HBase,name=Master,sub=AssignmentManger"; @Override public String extractMonitorData() { //TODO 通過調用API取得IP和參數 HMasterRoleInfo monitorDataPoint = new HMasterRoleInfo(); String URL = "http://hostname:60010/jmx"; JSONObject serverJson = qryJSonObjectFromJMX(URL, server); JSONObject assignJson = qryJSonObjectFromJMX(URL, assignment); try { monitorDataPoint.setNumRegionServers(serverJson.getLong("numRegionServers")); monitorDataPoint.setNumDeadRegionServers(serverJson.getLong("numDeadRegionServers")); monitorDataPoint.setClusterRequests(serverJson.getLong("clusterRequests")); monitorDataPoint.setRitCount(assignJson.getLong("ritCount")); monitorDataPoint.setRitCountOverThreshold(assignJson.getLong("ritCountOverThreshold")); monitorDataPoint.setRitOldestAge(assignJson.getLong("ritOldestAge")); } catch (JSONException e) { e.printStackTrace(); } return monitorDataPoint.toString(); } public static void main(String[] args){ System.out.println(new HBaseMasterDataProvider().extractMonitorData()); } /** * 通過jmx獲得監控數據 * * @param URL * @param objectName * @return */ public static JSONObject qryJSonObjectFromJMX(String URL, String objectName) { JSONObject jsonObject = null; try { StringBuilder sb = new StringBuilder(URL); sb.append("?qry="); sb.append(objectName); GetMethod getMethod = new GetMethod(sb.toString()); int statusCode = httpClient.executeMethod(getMethod); String jsonStr = new String(getMethod.getResponseBody()); jsonObject = new JSONObject(removeDuplicateContext(jsonStr)).getJSONArray("beans").getJSONObject(0); } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return jsonObject; } }



參考文章

JMXJsonServlet 介紹
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/http/jmx/JMXJsonServlet.html

Hadoop指標介紹
http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/Metrics.html#rpc











生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 高清欧美不卡一区二区三区 | 国内视频一区二区三区 | 亚州在线播放 | 午夜私人影院在线观看 视频 | 好吊色永久免费视频大全 | 久久综合爱 | 欧美成人中文字幕dvd | 欧美黄色一级片视频 | 欧美巨大xxxx做受中文字幕 | 免费看黄的网址 | 欧美一级日韩 | 日本中文在线视频 | 538亚洲欧美国产日韩在线精品 | 国产精品v欧美精品v日韩精品 | 亚洲无吗在线视频 | 久久看视频 | 国产日韩精品一区二区在线观看播放 | 国产精品一区二区久久精品涩爱 | 91精品人成在线观看 | 一区二区中文字幕亚洲精品 | 国产一区二区视频在线播放 | 黑人太大太粗受不了了 | 字幕网中文最新在线 | 亚洲免费在线观看视频 | 最近中文字幕无吗免费版 | 国产婷婷丁香久久综合 | 91探花国产综合在线精品 | 韩国三级午夜理伦三级99 | 欧美激情在线视频播放 | 伊人久久大香线蕉综合网站 | 久久精品一级 | 亚洲欧洲日产国产 最新 | 国产精品欧美亚洲韩国日本不卡 | 中国人黑人xxⅹ性猛 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 最近免费中文字幕高清大全 | 亚洲精品国产字幕久久不卡 | 成人97| 一区二区精品久久 | www.操操操.com| 亚洲综合影视 |