Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-10436

restore regionserver lists removed from hbase 0.96+ jmx

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.98.0, 0.96.0, 0.99.0
    • 0.96.2, 0.98.1, 0.99.0
    • metrics
    • None
    • Reviewed
    • Hide
      Many of the metrics exposed in 0.94 were removed with the refactorization of metrics in 0.96. This patch restores the availability of the live and dead regionserver lists. In 0.94 this used to be found as a large nested structure which included regionserver lists and metrics from each region.

       {
          "name" : "hadoop:service=Master,name=Master",
          "modelerType" : "org.apache.hadoop.hbase.master.MXBeanImpl",
          "ZookeeperQuorum" : "localhost:2181",
        ....
         "RegionsInTransition" : [ ],
          "RegionServers" : [ {
            "key" : "localhost,48346,1390857257246",
            "value" : {
              "load" : 2,
      ....
            
      In 0.96.0, 0.96.1.x and 0.98.0 did not contain this list -- it only contained counts of the number of live and dead regionservers. After this patch, the list are present in a ';' separated field like so:

      {
          "name" : "Hadoop:service=HBase,name=Master,sub=Server",
          "modelerType" : "Master,sub=Server",
          "tag.Context" : "master",
          "tag.liveRegionServers" : "localhost,56196,1391992019130",
          "tag.deadRegionServers" : "localhost,40010,1391035309673;localhost,41408,1391990380724;localhost,38682,1390950017735",
          ...
      }
      Show
      Many of the metrics exposed in 0.94 were removed with the refactorization of metrics in 0.96. This patch restores the availability of the live and dead regionserver lists. In 0.94 this used to be found as a large nested structure which included regionserver lists and metrics from each region.  {     "name" : "hadoop:service=Master,name=Master",     "modelerType" : "org.apache.hadoop.hbase.master.MXBeanImpl",     "ZookeeperQuorum" : "localhost:2181",   ....    "RegionsInTransition" : [ ],     "RegionServers" : [ {       "key" : "localhost,48346,1390857257246",       "value" : {         "load" : 2, ....        In 0.96.0, 0.96.1.x and 0.98.0 did not contain this list -- it only contained counts of the number of live and dead regionservers. After this patch, the list are present in a ';' separated field like so: {     "name" : "Hadoop:service=HBase,name=Master,sub=Server",     "modelerType" : "Master,sub=Server",     "tag.Context" : "master",     "tag.liveRegionServers" : "localhost,56196,1391992019130",     "tag.deadRegionServers" : "localhost,40010,1391035309673;localhost,41408,1391990380724;localhost,38682,1390950017735",     ... }

    Description

      HBase 0.96's refactored jmx beans do not contain the master's list of dead region servers and live regionservers with load info. HBase 0.94 did (though in a single monolithic blob).

      This JMX interface should be considered as much of an API as the the normal wire or java api. Dropping values from this was done without deprecation and the removal of this information is a functional regression.

      We should provide the information in the 0.96+ JMX. HBase 0.94 had a monolithic JMX blob ("hadoop:service=Master,name=Master") that contained a lot of information, including the regionserver list and the cached regionserver load for each region found on the master webpage. 0.96+ refactored jmx this into several jmx beans which could be selectively retrieved. These include:

      • hadoop:service=HBase,name=Master,sub=AssignmentManager
      • hadoop:service=HBase,name=Master,sub=Balancer
      • hadoop:service=HBase,name=Master,sub=Server
      • hadoop:service=HBase,name=Master,sub=FileSystem

      Specifically the (Hadoop:service=HBase,name=Master,sub=Server) listing that used to contain regionservers and deadregionservers in jmx were replaced in with numRegionServers and numDeadRegionservers which only contain counts.

      I propose just adding another mbean called "RegionServers" under the bean: "hadoop:service=HBase,name=Master,sub=RegionServers"

      Attachments

        1. hbase-10436.patch
          7 kB
          Jonathan Hsieh
        2. hbase-10436.v2.patch
          6 kB
          Jonathan Hsieh
        3. hbase-10436.notbean.patch
          10 kB
          Jonathan Hsieh

        Activity

          People

            jmhsieh Jonathan Hsieh
            jmhsieh Jonathan Hsieh
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: