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

HBase native metrics and metric collection for coprocessors

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.0
    • Component/s: Coprocessors, metrics
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      This issue adds two new modules, hbase-metrics and hbase-metrics-api which define and implement the "new" metric system used internally within HBase. These two modules (and some other code in hbase-hadoop2-compat) module are referred as "HBase metrics framework" which is HBase-specific and independent of any other metrics library (including Hadoop metrics2 and dropwizards metrics).

      HBase Metrics API (hbase-metrics-api) contains the interface that HBase exposes internally and to third party code (including coprocessors). It is a thin
      abstraction over the actual implementation for backwards compatibility guarantees. The metrics API in this hbase-metrics-api module is inspired by the Dropwizard metrics 3.1 API, however, the API is completely independent.

      hbase-metrics module contains implementation of the "HBase Metrics API", including MetricRegistry, Counter, Histogram, etc. These are highly concurrent implementations of the Metric interfaces. Metrics in HBase are grouped into different sets (like WAL, RPC, RegionServer, etc). Each group of metrics should be tracked via a MetricRegistry specific to that group.

      Historically, HBase has been using Hadoop's Metrics2 framework [3] for collecting and reporting the metrics internally. However, due to the difficultly of dealing with the Metrics2 framework, HBase is moving away from Hadoop's metrics implementation to its custom implementation. The move will happen incrementally, and during the time, both Hadoop Metrics2-based metrics and hbase-metrics module based classes will be in the source code. All new implementations for metrics SHOULD use the new API and framework.

      This jira also introduces the metrics API to coprocessor implementations. Coprocessor writes can export custom metrics using the API and have those collected via metrics2 sinks, as well as exported via JMX in regionserver metrics.

      More documentation available at: hbase-metrics-api/README.txt
      Show
      This issue adds two new modules, hbase-metrics and hbase-metrics-api which define and implement the "new" metric system used internally within HBase. These two modules (and some other code in hbase-hadoop2-compat) module are referred as "HBase metrics framework" which is HBase-specific and independent of any other metrics library (including Hadoop metrics2 and dropwizards metrics). HBase Metrics API (hbase-metrics-api) contains the interface that HBase exposes internally and to third party code (including coprocessors). It is a thin abstraction over the actual implementation for backwards compatibility guarantees. The metrics API in this hbase-metrics-api module is inspired by the Dropwizard metrics 3.1 API, however, the API is completely independent. hbase-metrics module contains implementation of the "HBase Metrics API", including MetricRegistry, Counter, Histogram, etc. These are highly concurrent implementations of the Metric interfaces. Metrics in HBase are grouped into different sets (like WAL, RPC, RegionServer, etc). Each group of metrics should be tracked via a MetricRegistry specific to that group. Historically, HBase has been using Hadoop's Metrics2 framework [3] for collecting and reporting the metrics internally. However, due to the difficultly of dealing with the Metrics2 framework, HBase is moving away from Hadoop's metrics implementation to its custom implementation. The move will happen incrementally, and during the time, both Hadoop Metrics2-based metrics and hbase-metrics module based classes will be in the source code. All new implementations for metrics SHOULD use the new API and framework. This jira also introduces the metrics API to coprocessor implementations. Coprocessor writes can export custom metrics using the API and have those collected via metrics2 sinks, as well as exported via JMX in regionserver metrics. More documentation available at: hbase-metrics-api/README.txt

      Description

      It would help provide better visibility into what coprocessors are doing if we provided a way for coprocessors to export their own metrics. The general idea is to:

      • extend access to the HBase "metrics bus" down into the coprocessor environments
      • coprocessors can then register and increment custom metrics
      • coprocessor metrics are then reported along with all others through normal mechanisms
      1. hbase-9774_v1.patch
        203 kB
        Enis Soztutar
      2. hbase-9774_v3.patch
        215 kB
        Enis Soztutar
      3. hbase-9774_v4.patch
        213 kB
        Enis Soztutar
      4. hbase-9774_v5.patch
        209 kB
        Enis Soztutar

        Issue Links

          Activity

          Hide
          enis Enis Soztutar added a comment -

          I would like to take on this work so that coprocessors can export their internal state.

          One big question that we have to decide though is the API that we expose to the coprocessors. We have a couple of options, and I would like to have some feedback and consensus before starting the implementation:
          (1) Expose Hadoop Metrics2 + HBase internal classes (like BaseSourceImpl, MutableFastCounter, FastLongHistogram, etc). This option is the least amount of work in terms of defining the API. We would mark the important classes with LimitedPrivate(Coprocessor) and have the coprocessors each write their metrics source classes separately. The disadvantage would be that some of the internal APIs are now public and has to be evolved with regards to coprocessor API compatibility. Also it will make it so that breaking coprocessors are now easier across minor releases.
          (2) Build a Metrics subset API in HBase to abstract away HBase metrics classes and Hadoop2 metrics classes and expose this API only. The API will probably be limited and will be a small subset. HBase internals do not need to be changed that much, but the API has to be kept LimitedPrivate(Coprocessor) with the compatibility implications.
          (3) Expose (a limited subset of) third-party API to the coprocessors (like Yammer metrics) and never expose internal HBase / Hadoop implementation. Build a translation layer between the yammer metrics and our Hadoop metrics 2 implementation so that things will still work. If we end up changing the implementation, existing coprocessors will not be affected. The downside is that whatever API that we agree to expose becomes our compatibility point. We cannot change that dependency version unless it is acceptable via our compatibility guidelines.

          Personally, I would like to pursue option (3) since we do not have to build yet another API endpoint. Hadoop's metrics API is not the best and we do not know whether we will end up changing that dependency. What do you guys think?

          Show
          enis Enis Soztutar added a comment - I would like to take on this work so that coprocessors can export their internal state. One big question that we have to decide though is the API that we expose to the coprocessors. We have a couple of options, and I would like to have some feedback and consensus before starting the implementation: (1) Expose Hadoop Metrics2 + HBase internal classes (like BaseSourceImpl, MutableFastCounter, FastLongHistogram, etc). This option is the least amount of work in terms of defining the API. We would mark the important classes with LimitedPrivate(Coprocessor) and have the coprocessors each write their metrics source classes separately. The disadvantage would be that some of the internal APIs are now public and has to be evolved with regards to coprocessor API compatibility. Also it will make it so that breaking coprocessors are now easier across minor releases. (2) Build a Metrics subset API in HBase to abstract away HBase metrics classes and Hadoop2 metrics classes and expose this API only. The API will probably be limited and will be a small subset. HBase internals do not need to be changed that much, but the API has to be kept LimitedPrivate(Coprocessor) with the compatibility implications. (3) Expose (a limited subset of) third-party API to the coprocessors (like Yammer metrics) and never expose internal HBase / Hadoop implementation. Build a translation layer between the yammer metrics and our Hadoop metrics 2 implementation so that things will still work. If we end up changing the implementation, existing coprocessors will not be affected. The downside is that whatever API that we agree to expose becomes our compatibility point. We cannot change that dependency version unless it is acceptable via our compatibility guidelines. Personally, I would like to pursue option (3) since we do not have to build yet another API endpoint. Hadoop's metrics API is not the best and we do not know whether we will end up changing that dependency. What do you guys think?
          Hide
          enis Enis Soztutar added a comment -

          See https://lists.apache.org/thread.html/9b42c31c7801d9c8b53fd27c6b198e0bd74a9c9a89f2e173070d961e@%3Cdev.hbase.apache.org%3E for a discussion on the above topic.

          Seems like the consensus is to move towards the approach #2.

          Show
          enis Enis Soztutar added a comment - See https://lists.apache.org/thread.html/9b42c31c7801d9c8b53fd27c6b198e0bd74a9c9a89f2e173070d961e@%3Cdev.hbase.apache.org%3E for a discussion on the above topic. Seems like the consensus is to move towards the approach #2.
          Hide
          enis Enis Soztutar added a comment -

          I created an RB for the wip patch depending on our awesome Josh Elser's work in Apache Calcite. It is not final, but contains almost all of the functionality that we want:

          • hbase-metrics-api is an HBase-only API that is used internally within HBase, as well as exposed to the coprocessors. This module contains only the API part. The API is very similar to the Dropwizard metrics API and is a subset, with some additions for HBase. Some code is forked from https://github.com/apache/calcite/tree/master/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics.
          • hbase-metrics is an implementation of the APIs in the metrics-api module which delegates everything to Dropwizard metrics (3.1.2) implementation. There is also some grouping of metrics in different registries that allows to group metrics into subcomponents (WAL, IPC, etc). This layer does not know anything about Hadoop metrics2.
          • hadoop2-compat has the Dropwizard2HadoopMetricsAdapter code that knows about both Dropwizard based metrics and Hadoop metrics2. It can collect the metrics in DW registries using metrics2 collectors. This is the only class that is exposed to both of the implementations. Some code is forked from https://github.com/joshelser/dropwizard-hadoop-metrics2.

          Things that are not coming from calcite:

          • MetricRegistries / GlobalMetricRegistriesSource: These are for doing JVM-global MetricRegistry instances so that different metric registries can be used for different subcomponents. The global source will collect all of the metrics in all of the DW metric registries. This makes it so that we do not have to define a lot of classes and indirection inside the actual code that uses metrics (hbase-server, etc).
          • code in hbase-server, etc will mostly use the code from hbase-metrics-api, and do not need to know about dropwizard API and hbase-metrics implementation.
          • New metric sources (like coprocessors, etc) can use only the new API, and never have to know anything about metrics2.
          • Even for existing MetricSources (like MetricsRegionServerSource), we can add new metrics using the new API. Existing metrics can be moved to the new API incrementally. The example bulkLoad metrics in MetricsRegionServerSource shows how this can be used.
          • The patch adds coprocessor metrics at the RS level as well as region level. Some example code shows how to use it from coprocessors.

          Review is here: https://reviews.apache.org/r/54008/

          Show
          enis Enis Soztutar added a comment - I created an RB for the wip patch depending on our awesome Josh Elser 's work in Apache Calcite. It is not final, but contains almost all of the functionality that we want: hbase-metrics-api is an HBase-only API that is used internally within HBase, as well as exposed to the coprocessors. This module contains only the API part. The API is very similar to the Dropwizard metrics API and is a subset, with some additions for HBase. Some code is forked from https://github.com/apache/calcite/tree/master/avatica/metrics/src/main/java/org/apache/calcite/avatica/metrics . hbase-metrics is an implementation of the APIs in the metrics-api module which delegates everything to Dropwizard metrics (3.1.2) implementation. There is also some grouping of metrics in different registries that allows to group metrics into subcomponents (WAL, IPC, etc). This layer does not know anything about Hadoop metrics2. hadoop2-compat has the Dropwizard2HadoopMetricsAdapter code that knows about both Dropwizard based metrics and Hadoop metrics2. It can collect the metrics in DW registries using metrics2 collectors. This is the only class that is exposed to both of the implementations. Some code is forked from https://github.com/joshelser/dropwizard-hadoop-metrics2 . Things that are not coming from calcite: MetricRegistries / GlobalMetricRegistriesSource: These are for doing JVM-global MetricRegistry instances so that different metric registries can be used for different subcomponents. The global source will collect all of the metrics in all of the DW metric registries. This makes it so that we do not have to define a lot of classes and indirection inside the actual code that uses metrics (hbase-server, etc). code in hbase-server, etc will mostly use the code from hbase-metrics-api, and do not need to know about dropwizard API and hbase-metrics implementation. New metric sources (like coprocessors, etc) can use only the new API, and never have to know anything about metrics2. Even for existing MetricSources (like MetricsRegionServerSource), we can add new metrics using the new API. Existing metrics can be moved to the new API incrementally. The example bulkLoad metrics in MetricsRegionServerSource shows how this can be used. The patch adds coprocessor metrics at the RS level as well as region level. Some example code shows how to use it from coprocessors. Review is here: https://reviews.apache.org/r/54008/
          Hide
          enis Enis Soztutar added a comment -

          Liked HBASE-14282 which is just ripping metrics. This patch will give us DW based metrics first in the code base, then we can incrementally move to using more and more internal stuff and eventually contain everything for metrics2 in the hadoop-compat module.

          Show
          enis Enis Soztutar added a comment - Liked HBASE-14282 which is just ripping metrics. This patch will give us DW based metrics first in the code base, then we can incrementally move to using more and more internal stuff and eventually contain everything for metrics2 in the hadoop-compat module.
          Hide
          enis Enis Soztutar added a comment -

          Attaching patch from review. See RB for more context.

          Show
          enis Enis Soztutar added a comment - Attaching patch from review. See RB for more context.
          Hide
          hadoopqa Hadoop QA added a comment -
          -1 overall



          Vote Subsystem Runtime Comment
          0 reexec 0m 20s Docker mode activated.
          +1 hbaseanti 0m 0s Patch does not have any anti-patterns.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 13 new or modified test files.
          0 mvndep 0m 22s Maven dependency ordering for branch
          +1 mvninstall 3m 52s master passed
          +1 compile 5m 29s master passed
          +1 checkstyle 3m 10s master passed
          +1 mvneclipse 2m 44s master passed
          0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly .
          +1 findbugs 5m 5s master passed
          +1 javadoc 4m 20s master passed
          0 mvndep 0m 8s Maven dependency ordering for patch
          +1 mvninstall 6m 3s the patch passed
          +1 compile 5m 51s the patch passed
          +1 javac 5m 51s the patch passed
          +1 checkstyle 3m 46s the patch passed
          +1 mvneclipse 3m 21s the patch passed
          -1 whitespace 0m 0s The patch has 2 line(s) that end in whitespace. Use git apply --whitespace=fix.
          +1 xml 0m 12s The patch has no ill-formed XML file.
          +1 hadoopcheck 27m 47s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1.
          0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly
          -1 findbugs 0m 32s hbase-examples generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
          -1 javadoc 0m 8s hbase-metrics-api generated 4 new + 0 unchanged - 0 fixed = 4 total (was 0)
          -1 javadoc 1m 59s root generated 4 new + 19 unchanged - 0 fixed = 23 total (was 19)
          +1 unit 1m 39s hbase-common in the patch passed.
          +1 unit 0m 55s hbase-client in the patch passed.
          +1 unit 0m 8s hbase-metrics-api in the patch passed.
          +1 unit 0m 16s hbase-hadoop-compat in the patch passed.
          -1 unit 5m 30s root in the patch failed.
          +1 unit 0m 11s hbase-assembly in the patch passed.
          +1 unit 0m 17s hbase-examples in the patch passed.
          +1 unit 0m 19s hbase-hadoop2-compat in the patch passed.
          -1 unit 0m 12s hbase-metrics in the patch failed.
          -1 unit 76m 4s hbase-server in the patch failed.
          -1 asflicense 2m 17s The patch generated 2 ASF License warnings.
          171m 10s



          Reason Tests
          FindBugs module:hbase-examples
            Read of unwritten field disableTableCounter in org.apache.hadoop.hbase.coprocessor.example.ExampleMasterObserverWithMetrics.preDisableTable(ObserverContext, TableName) At ExampleMasterObserverWithMetrics.java:in org.apache.hadoop.hbase.coprocessor.example.ExampleMasterObserverWithMetrics.preDisableTable(ObserverContext, TableName) At ExampleMasterObserverWithMetrics.java:[line 94]
            Unwritten field:ExampleMasterObserverWithMetrics.java:[line 94]
          Failed junit tests hadoop.hbase.replication.multiwal.TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL
            hadoop.hbase.regionserver.TestRegionReplicaFailover
            hadoop.hbase.replication.TestReplicationDisableInactivePeer
            hadoop.hbase.replication.TestReplicationSmallTests
            hadoop.hbase.replication.TestReplicationSyncUpTool
            hadoop.hbase.replication.TestReplicationEndpoint
            hadoop.hbase.replication.TestNamespaceReplication
            hadoop.hbase.replication.TestReplicationKillMasterRS
            hadoop.hbase.replication.TestReplicationChangingPeerRegionservers
            hadoop.hbase.replication.TestReplicationKillSlaveRS
            hadoop.hbase.metrics.impl.TestTimerImpl
            hadoop.hbase.metrics.impl.TestTimerImpl
            hadoop.hbase.replication.multiwal.TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL
            hadoop.hbase.regionserver.TestRegionReplicaFailover
            hadoop.hbase.replication.TestReplicationDisableInactivePeer
            hadoop.hbase.replication.TestReplicationSmallTests
            hadoop.hbase.replication.TestReplicationSyncUpTool
            hadoop.hbase.replication.TestReplicationEndpoint
            hadoop.hbase.replication.TestNamespaceReplication
            hadoop.hbase.replication.TestReplicationKillMasterRS
            hadoop.hbase.replication.TestReplicationChangingPeerRegionservers
            hadoop.hbase.replication.TestReplicationKillSlaveRS
          Timed out junit tests org.apache.hadoop.hbase.security.access.TestCellACLWithMultipleVersions
            org.apache.hadoop.hbase.security.access.TestAccessController
            org.apache.hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver



          Subsystem Report/Notes
          Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12842447/hbase-9774_v1.patch
          JIRA Issue HBASE-9774
          Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle
          uname Linux c90a8cb4b0ff 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 21:21:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build@2/component/dev-support/hbase-personality.sh
          git revision master / b3ae87b
          Default Java 1.8.0_111
          findbugs v3.0.0
          whitespace https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/whitespace-eol.txt
          findbugs https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/new-findbugs-hbase-examples.html
          javadoc https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/diff-javadoc-javadoc-hbase-metrics-api.txt
          javadoc https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/diff-javadoc-javadoc-root.txt
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-root.txt
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-metrics.txt
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-server.txt
          unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-root.txt https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-metrics.txt https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-server.txt
          Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/4849/testReport/
          asflicense https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-asflicense-problems.txt
          modules C: hbase-common hbase-client hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: .
          Console output https://builds.apache.org/job/PreCommit-HBASE-Build/4849/console
          Powered by Apache Yetus 0.3.0 http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 0m 20s Docker mode activated. +1 hbaseanti 0m 0s Patch does not have any anti-patterns. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 13 new or modified test files. 0 mvndep 0m 22s Maven dependency ordering for branch +1 mvninstall 3m 52s master passed +1 compile 5m 29s master passed +1 checkstyle 3m 10s master passed +1 mvneclipse 2m 44s master passed 0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly . +1 findbugs 5m 5s master passed +1 javadoc 4m 20s master passed 0 mvndep 0m 8s Maven dependency ordering for patch +1 mvninstall 6m 3s the patch passed +1 compile 5m 51s the patch passed +1 javac 5m 51s the patch passed +1 checkstyle 3m 46s the patch passed +1 mvneclipse 3m 21s the patch passed -1 whitespace 0m 0s The patch has 2 line(s) that end in whitespace. Use git apply --whitespace=fix. +1 xml 0m 12s The patch has no ill-formed XML file. +1 hadoopcheck 27m 47s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. 0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly -1 findbugs 0m 32s hbase-examples generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) -1 javadoc 0m 8s hbase-metrics-api generated 4 new + 0 unchanged - 0 fixed = 4 total (was 0) -1 javadoc 1m 59s root generated 4 new + 19 unchanged - 0 fixed = 23 total (was 19) +1 unit 1m 39s hbase-common in the patch passed. +1 unit 0m 55s hbase-client in the patch passed. +1 unit 0m 8s hbase-metrics-api in the patch passed. +1 unit 0m 16s hbase-hadoop-compat in the patch passed. -1 unit 5m 30s root in the patch failed. +1 unit 0m 11s hbase-assembly in the patch passed. +1 unit 0m 17s hbase-examples in the patch passed. +1 unit 0m 19s hbase-hadoop2-compat in the patch passed. -1 unit 0m 12s hbase-metrics in the patch failed. -1 unit 76m 4s hbase-server in the patch failed. -1 asflicense 2m 17s The patch generated 2 ASF License warnings. 171m 10s Reason Tests FindBugs module:hbase-examples   Read of unwritten field disableTableCounter in org.apache.hadoop.hbase.coprocessor.example.ExampleMasterObserverWithMetrics.preDisableTable(ObserverContext, TableName) At ExampleMasterObserverWithMetrics.java:in org.apache.hadoop.hbase.coprocessor.example.ExampleMasterObserverWithMetrics.preDisableTable(ObserverContext, TableName) At ExampleMasterObserverWithMetrics.java: [line 94]   Unwritten field:ExampleMasterObserverWithMetrics.java: [line 94] Failed junit tests hadoop.hbase.replication.multiwal.TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL   hadoop.hbase.regionserver.TestRegionReplicaFailover   hadoop.hbase.replication.TestReplicationDisableInactivePeer   hadoop.hbase.replication.TestReplicationSmallTests   hadoop.hbase.replication.TestReplicationSyncUpTool   hadoop.hbase.replication.TestReplicationEndpoint   hadoop.hbase.replication.TestNamespaceReplication   hadoop.hbase.replication.TestReplicationKillMasterRS   hadoop.hbase.replication.TestReplicationChangingPeerRegionservers   hadoop.hbase.replication.TestReplicationKillSlaveRS   hadoop.hbase.metrics.impl.TestTimerImpl   hadoop.hbase.metrics.impl.TestTimerImpl   hadoop.hbase.replication.multiwal.TestReplicationKillMasterRSCompressedWithMultipleAsyncWAL   hadoop.hbase.regionserver.TestRegionReplicaFailover   hadoop.hbase.replication.TestReplicationDisableInactivePeer   hadoop.hbase.replication.TestReplicationSmallTests   hadoop.hbase.replication.TestReplicationSyncUpTool   hadoop.hbase.replication.TestReplicationEndpoint   hadoop.hbase.replication.TestNamespaceReplication   hadoop.hbase.replication.TestReplicationKillMasterRS   hadoop.hbase.replication.TestReplicationChangingPeerRegionservers   hadoop.hbase.replication.TestReplicationKillSlaveRS Timed out junit tests org.apache.hadoop.hbase.security.access.TestCellACLWithMultipleVersions   org.apache.hadoop.hbase.security.access.TestAccessController   org.apache.hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver Subsystem Report/Notes Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12842447/hbase-9774_v1.patch JIRA Issue HBASE-9774 Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle uname Linux c90a8cb4b0ff 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 21:21:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build@2/component/dev-support/hbase-personality.sh git revision master / b3ae87b Default Java 1.8.0_111 findbugs v3.0.0 whitespace https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/whitespace-eol.txt findbugs https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/new-findbugs-hbase-examples.html javadoc https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/diff-javadoc-javadoc-hbase-metrics-api.txt javadoc https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/diff-javadoc-javadoc-root.txt unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-root.txt unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-metrics.txt unit https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-server.txt unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-root.txt https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-metrics.txt https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-unit-hbase-server.txt Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/4849/testReport/ asflicense https://builds.apache.org/job/PreCommit-HBASE-Build/4849/artifact/patchprocess/patch-asflicense-problems.txt modules C: hbase-common hbase-client hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: . Console output https://builds.apache.org/job/PreCommit-HBASE-Build/4849/console Powered by Apache Yetus 0.3.0 http://yetus.apache.org This message was automatically generated.
          Hide
          enis Enis Soztutar added a comment -

          v3 should fix the unit test and other hadoopqa problems. Let's see how this does.

          Show
          enis Enis Soztutar added a comment - v3 should fix the unit test and other hadoopqa problems. Let's see how this does.
          Hide
          hadoopqa Hadoop QA added a comment -
          -1 overall



          Vote Subsystem Runtime Comment
          0 reexec 12m 55s Docker mode activated.
          +1 hbaseanti 0m 0s Patch does not have any anti-patterns.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 13 new or modified test files.
          0 mvndep 0m 29s Maven dependency ordering for branch
          +1 mvninstall 2m 42s master passed
          +1 compile 3m 42s master passed
          +1 checkstyle 1m 57s master passed
          +1 mvneclipse 1m 59s master passed
          0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly
          +1 findbugs 2m 52s master passed
          +1 javadoc 2m 58s master passed
          0 mvndep 0m 5s Maven dependency ordering for patch
          +1 mvninstall 4m 26s the patch passed
          +1 compile 4m 1s the patch passed
          +1 javac 4m 1s the patch passed
          +1 checkstyle 2m 27s the patch passed
          +1 mvneclipse 2m 18s the patch passed
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 xml 0m 9s The patch has no ill-formed XML file.
          +1 hadoopcheck 24m 10s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1.
          0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly
          +1 findbugs 4m 13s the patch passed
          +1 javadoc 3m 23s the patch passed
          +1 unit 1m 48s hbase-common in the patch passed.
          +1 unit 0m 9s hbase-metrics-api in the patch passed.
          +1 unit 0m 16s hbase-hadoop-compat in the patch passed.
          -1 unit 91m 56s root in the patch failed.
          +1 unit 0m 13s hbase-assembly in the patch passed.
          +1 unit 0m 18s hbase-examples in the patch passed.
          +1 unit 0m 25s hbase-hadoop2-compat in the patch passed.
          +1 unit 0m 19s hbase-metrics in the patch passed.
          +1 unit 88m 59s hbase-server in the patch passed.
          +1 asflicense 2m 5s The patch does not generate ASF License warnings.
          262m 28s



          Reason Tests
          Timed out junit tests org.apache.hadoop.hbase.mapreduce.TestTableInputFormat
            org.apache.hadoop.hbase.mapreduce.TestImportExport
            org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat
            org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFilesSplitRecovery



          Subsystem Report/Notes
          Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12843157/hbase-9774_v3.patch
          JIRA Issue HBASE-9774
          Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle
          uname Linux 0fab2dec79a0 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
          git revision master / a73b0b3
          Default Java 1.8.0_111
          findbugs v3.0.0
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/4908/artifact/patchprocess/patch-unit-root.txt
          unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/4908/artifact/patchprocess/patch-unit-root.txt
          Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/4908/testReport/
          modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: .
          Console output https://builds.apache.org/job/PreCommit-HBASE-Build/4908/console
          Powered by Apache Yetus 0.3.0 http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 12m 55s Docker mode activated. +1 hbaseanti 0m 0s Patch does not have any anti-patterns. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 13 new or modified test files. 0 mvndep 0m 29s Maven dependency ordering for branch +1 mvninstall 2m 42s master passed +1 compile 3m 42s master passed +1 checkstyle 1m 57s master passed +1 mvneclipse 1m 59s master passed 0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly +1 findbugs 2m 52s master passed +1 javadoc 2m 58s master passed 0 mvndep 0m 5s Maven dependency ordering for patch +1 mvninstall 4m 26s the patch passed +1 compile 4m 1s the patch passed +1 javac 4m 1s the patch passed +1 checkstyle 2m 27s the patch passed +1 mvneclipse 2m 18s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 xml 0m 9s The patch has no ill-formed XML file. +1 hadoopcheck 24m 10s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. 0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly +1 findbugs 4m 13s the patch passed +1 javadoc 3m 23s the patch passed +1 unit 1m 48s hbase-common in the patch passed. +1 unit 0m 9s hbase-metrics-api in the patch passed. +1 unit 0m 16s hbase-hadoop-compat in the patch passed. -1 unit 91m 56s root in the patch failed. +1 unit 0m 13s hbase-assembly in the patch passed. +1 unit 0m 18s hbase-examples in the patch passed. +1 unit 0m 25s hbase-hadoop2-compat in the patch passed. +1 unit 0m 19s hbase-metrics in the patch passed. +1 unit 88m 59s hbase-server in the patch passed. +1 asflicense 2m 5s The patch does not generate ASF License warnings. 262m 28s Reason Tests Timed out junit tests org.apache.hadoop.hbase.mapreduce.TestTableInputFormat   org.apache.hadoop.hbase.mapreduce.TestImportExport   org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat   org.apache.hadoop.hbase.mapreduce.TestLoadIncrementalHFilesSplitRecovery Subsystem Report/Notes Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12843157/hbase-9774_v3.patch JIRA Issue HBASE-9774 Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle uname Linux 0fab2dec79a0 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh git revision master / a73b0b3 Default Java 1.8.0_111 findbugs v3.0.0 unit https://builds.apache.org/job/PreCommit-HBASE-Build/4908/artifact/patchprocess/patch-unit-root.txt unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/4908/artifact/patchprocess/patch-unit-root.txt Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/4908/testReport/ modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: . Console output https://builds.apache.org/job/PreCommit-HBASE-Build/4908/console Powered by Apache Yetus 0.3.0 http://yetus.apache.org This message was automatically generated.
          Hide
          enis Enis Soztutar added a comment -

          Patch from RB.

          Will commit this unless there is more feedback.

          Show
          enis Enis Soztutar added a comment - Patch from RB. Will commit this unless there is more feedback.
          Hide
          hadoopqa Hadoop QA added a comment -
          -1 overall



          Vote Subsystem Runtime Comment
          0 reexec 0m 10s Docker mode activated.
          +1 hbaseanti 0m 0s Patch does not have any anti-patterns.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 13 new or modified test files.
          0 mvndep 0m 21s Maven dependency ordering for branch
          +1 mvninstall 2m 57s master passed
          +1 compile 4m 5s master passed
          +1 checkstyle 2m 14s master passed
          +1 mvneclipse 2m 11s master passed
          0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly .
          +1 findbugs 3m 7s master passed
          +1 javadoc 3m 10s master passed
          0 mvndep 0m 7s Maven dependency ordering for patch
          +1 mvninstall 4m 50s the patch passed
          +1 compile 4m 28s the patch passed
          +1 javac 4m 28s the patch passed
          +1 checkstyle 2m 49s the patch passed
          +1 mvneclipse 2m 32s the patch passed
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 xml 0m 9s The patch has no ill-formed XML file.
          +1 hadoopcheck 26m 17s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1.
          0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly
          +1 findbugs 4m 28s the patch passed
          +1 javadoc 3m 30s the patch passed
          +1 unit 1m 41s hbase-common in the patch passed.
          +1 unit 0m 9s hbase-metrics-api in the patch passed.
          +1 unit 0m 17s hbase-hadoop-compat in the patch passed.
          -1 unit 89m 5s root in the patch failed.
          +1 unit 0m 19s hbase-assembly in the patch passed.
          +1 unit 0m 23s hbase-examples in the patch passed.
          +1 unit 0m 23s hbase-hadoop2-compat in the patch passed.
          +1 unit 0m 17s hbase-metrics in the patch passed.
          -1 unit 82m 32s hbase-server in the patch failed.
          +1 asflicense 1m 45s The patch does not generate ASF License warnings.
          245m 33s



          Reason Tests
          Failed junit tests hadoop.hbase.client.TestSnapshotCloneIndependence
            hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver
            hadoop.hbase.client.TestSnapshotCloneIndependence
            hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver
          Timed out junit tests org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer2
            org.apache.hadoop.hbase.master.TestRollingRestart
            org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer
            org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer2
            org.apache.hadoop.hbase.master.TestAssignmentListener
            org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer
            org.apache.hadoop.hbase.master.TestDistributedLogSplitting
            org.apache.hadoop.hbase.TestHColumnDescriptorDefaultVersions



          Subsystem Report/Notes
          Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12848678/hbase-9774_v4.patch
          JIRA Issue HBASE-9774
          Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle
          uname Linux d582d1f0e0c3 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 15:37:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
          git revision master / 7901805
          Default Java 1.8.0_121
          findbugs v3.0.0
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-root.txt
          unit https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-hbase-server.txt
          unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-root.txt https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-hbase-server.txt
          Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/5377/testReport/
          modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: .
          Console output https://builds.apache.org/job/PreCommit-HBASE-Build/5377/console
          Powered by Apache Yetus 0.3.0 http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - -1 overall Vote Subsystem Runtime Comment 0 reexec 0m 10s Docker mode activated. +1 hbaseanti 0m 0s Patch does not have any anti-patterns. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 13 new or modified test files. 0 mvndep 0m 21s Maven dependency ordering for branch +1 mvninstall 2m 57s master passed +1 compile 4m 5s master passed +1 checkstyle 2m 14s master passed +1 mvneclipse 2m 11s master passed 0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly . +1 findbugs 3m 7s master passed +1 javadoc 3m 10s master passed 0 mvndep 0m 7s Maven dependency ordering for patch +1 mvninstall 4m 50s the patch passed +1 compile 4m 28s the patch passed +1 javac 4m 28s the patch passed +1 checkstyle 2m 49s the patch passed +1 mvneclipse 2m 32s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 xml 0m 9s The patch has no ill-formed XML file. +1 hadoopcheck 26m 17s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. 0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly +1 findbugs 4m 28s the patch passed +1 javadoc 3m 30s the patch passed +1 unit 1m 41s hbase-common in the patch passed. +1 unit 0m 9s hbase-metrics-api in the patch passed. +1 unit 0m 17s hbase-hadoop-compat in the patch passed. -1 unit 89m 5s root in the patch failed. +1 unit 0m 19s hbase-assembly in the patch passed. +1 unit 0m 23s hbase-examples in the patch passed. +1 unit 0m 23s hbase-hadoop2-compat in the patch passed. +1 unit 0m 17s hbase-metrics in the patch passed. -1 unit 82m 32s hbase-server in the patch failed. +1 asflicense 1m 45s The patch does not generate ASF License warnings. 245m 33s Reason Tests Failed junit tests hadoop.hbase.client.TestSnapshotCloneIndependence   hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver   hadoop.hbase.client.TestSnapshotCloneIndependence   hadoop.hbase.security.access.TestCoprocessorWhitelistMasterObserver Timed out junit tests org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer2   org.apache.hadoop.hbase.master.TestRollingRestart   org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer   org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer2   org.apache.hadoop.hbase.master.TestAssignmentListener   org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer   org.apache.hadoop.hbase.master.TestDistributedLogSplitting   org.apache.hadoop.hbase.TestHColumnDescriptorDefaultVersions Subsystem Report/Notes Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12848678/hbase-9774_v4.patch JIRA Issue HBASE-9774 Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle uname Linux d582d1f0e0c3 3.13.0-105-generic #152-Ubuntu SMP Fri Dec 2 15:37:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh git revision master / 7901805 Default Java 1.8.0_121 findbugs v3.0.0 unit https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-root.txt unit https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-hbase-server.txt unit test logs https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-root.txt https://builds.apache.org/job/PreCommit-HBASE-Build/5377/artifact/patchprocess/patch-unit-hbase-server.txt Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/5377/testReport/ modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: . Console output https://builds.apache.org/job/PreCommit-HBASE-Build/5377/console Powered by Apache Yetus 0.3.0 http://yetus.apache.org This message was automatically generated.
          Hide
          enis Enis Soztutar added a comment -

          we are getting

          testRestoreSnapshotDoesNotCreateBackRefLinks(org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat)  Time elapsed: 0.568 sec  <<< ERROR!
          java.util.ConcurrentModificationException: null
          	at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437)
          	at java.util.HashMap$ValueIterator.next(HashMap.java:1466)
          	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:194)
          	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:164)
          	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:54)
          	at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50)
          	at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2370)
          	at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2260)
          	at org.apache.hadoop.hdfs.MiniDFSCluster.startDataNodes(MiniDFSCluster.java:1449)
          	at org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:832)
          	at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:742)
          	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSCluster(HBaseTestingUtility.java:654)
          	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:1048)
          	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:929)
          	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:911)
          	at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:880)
          	at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatTestBase.setupCluster(TableSnapshotInputFormatTestBase.java:63)
          

          from the metrics lib. Seems related to the patch, but maybe we need YARN-3619 or YARN-5190 which are not in hadoop-2.7.1. Let me try to reproduce the CME.

          Show
          enis Enis Soztutar added a comment - we are getting testRestoreSnapshotDoesNotCreateBackRefLinks(org.apache.hadoop.hbase.mapreduce.TestTableSnapshotInputFormat) Time elapsed: 0.568 sec <<< ERROR! java.util.ConcurrentModificationException: null at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) at java.util.HashMap$ValueIterator.next(HashMap.java:1466) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:194) at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:164) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:54) at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50) at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2370) at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2260) at org.apache.hadoop.hdfs.MiniDFSCluster.startDataNodes(MiniDFSCluster.java:1449) at org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:832) at org.apache.hadoop.hdfs.MiniDFSCluster.<init>(MiniDFSCluster.java:742) at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniDFSCluster(HBaseTestingUtility.java:654) at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:1048) at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:929) at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:911) at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:880) at org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormatTestBase.setupCluster(TableSnapshotInputFormatTestBase.java:63) from the metrics lib. Seems related to the patch, but maybe we need YARN-3619 or YARN-5190 which are not in hadoop-2.7.1. Let me try to reproduce the CME.
          Hide
          enis Enis Soztutar added a comment -

          Found the issue that was affecting the tests. It is due to the fact that we are registering metrics inside the getMetrics() method. Although there is the MetricsSystemImpl monitor for synchronization, this happens due to the lock being re-entrant. Changed the code for GlobalMetricRegistriesSource to use an executor instead to register the metrics.

          Let's see what hadoopqa thinks.

          Show
          enis Enis Soztutar added a comment - Found the issue that was affecting the tests. It is due to the fact that we are registering metrics inside the getMetrics() method. Although there is the MetricsSystemImpl monitor for synchronization, this happens due to the lock being re-entrant. Changed the code for GlobalMetricRegistriesSource to use an executor instead to register the metrics. Let's see what hadoopqa thinks.
          Hide
          hadoopqa Hadoop QA added a comment -
          +1 overall



          Vote Subsystem Runtime Comment
          0 reexec 0m 15s Docker mode activated.
          +1 hbaseanti 0m 0s Patch does not have any anti-patterns.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 13 new or modified test files.
          0 mvndep 0m 24s Maven dependency ordering for branch
          +1 mvninstall 3m 23s master passed
          +1 compile 4m 22s master passed
          +1 checkstyle 2m 15s master passed
          +1 mvneclipse 2m 18s master passed
          0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly .
          +1 findbugs 3m 22s master passed
          +1 javadoc 3m 27s master passed
          0 mvndep 0m 6s Maven dependency ordering for patch
          +1 mvninstall 4m 57s the patch passed
          +1 compile 4m 38s the patch passed
          +1 javac 4m 38s the patch passed
          +1 checkstyle 2m 48s the patch passed
          +1 mvneclipse 2m 31s the patch passed
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 xml 0m 8s The patch has no ill-formed XML file.
          +1 hadoopcheck 27m 43s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1.
          0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly
          +1 findbugs 4m 26s the patch passed
          +1 javadoc 3m 18s the patch passed
          +1 unit 1m 45s hbase-common in the patch passed.
          +1 unit 0m 8s hbase-metrics-api in the patch passed.
          +1 unit 0m 16s hbase-hadoop-compat in the patch passed.
          +1 unit 105m 44s root in the patch passed.
          +1 unit 0m 18s hbase-assembly in the patch passed.
          +1 unit 0m 22s hbase-examples in the patch passed.
          +1 unit 0m 26s hbase-hadoop2-compat in the patch passed.
          +1 unit 0m 17s hbase-metrics in the patch passed.
          +1 unit 87m 20s hbase-server in the patch passed.
          +1 asflicense 1m 40s The patch does not generate ASF License warnings.
          270m 2s



          Subsystem Report/Notes
          Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12849185/hbase-9774_v5.patch
          JIRA Issue HBASE-9774
          Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle
          uname Linux 78a6b984cc1b 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build@2/component/dev-support/hbase-personality.sh
          git revision master / 616f480
          Default Java 1.8.0_121
          findbugs v3.0.0
          Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/5433/testReport/
          modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: .
          Console output https://builds.apache.org/job/PreCommit-HBASE-Build/5433/console
          Powered by Apache Yetus 0.3.0 http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - +1 overall Vote Subsystem Runtime Comment 0 reexec 0m 15s Docker mode activated. +1 hbaseanti 0m 0s Patch does not have any anti-patterns. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 13 new or modified test files. 0 mvndep 0m 24s Maven dependency ordering for branch +1 mvninstall 3m 23s master passed +1 compile 4m 22s master passed +1 checkstyle 2m 15s master passed +1 mvneclipse 2m 18s master passed 0 findbugs 0m 0s Skipped patched modules with no Java source: hbase-assembly . +1 findbugs 3m 22s master passed +1 javadoc 3m 27s master passed 0 mvndep 0m 6s Maven dependency ordering for patch +1 mvninstall 4m 57s the patch passed +1 compile 4m 38s the patch passed +1 javac 4m 38s the patch passed +1 checkstyle 2m 48s the patch passed +1 mvneclipse 2m 31s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 xml 0m 8s The patch has no ill-formed XML file. +1 hadoopcheck 27m 43s Patch does not cause any errors with Hadoop 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha1. 0 findbugs 0m 0s Skipped patched modules with no Java source: . hbase-assembly +1 findbugs 4m 26s the patch passed +1 javadoc 3m 18s the patch passed +1 unit 1m 45s hbase-common in the patch passed. +1 unit 0m 8s hbase-metrics-api in the patch passed. +1 unit 0m 16s hbase-hadoop-compat in the patch passed. +1 unit 105m 44s root in the patch passed. +1 unit 0m 18s hbase-assembly in the patch passed. +1 unit 0m 22s hbase-examples in the patch passed. +1 unit 0m 26s hbase-hadoop2-compat in the patch passed. +1 unit 0m 17s hbase-metrics in the patch passed. +1 unit 87m 20s hbase-server in the patch passed. +1 asflicense 1m 40s The patch does not generate ASF License warnings. 270m 2s Subsystem Report/Notes Docker Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12849185/hbase-9774_v5.patch JIRA Issue HBASE-9774 Optional Tests asflicense javac javadoc unit xml compile findbugs hadoopcheck hbaseanti checkstyle uname Linux 78a6b984cc1b 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build@2/component/dev-support/hbase-personality.sh git revision master / 616f480 Default Java 1.8.0_121 findbugs v3.0.0 Test Results https://builds.apache.org/job/PreCommit-HBASE-Build/5433/testReport/ modules C: hbase-common hbase-metrics-api hbase-hadoop-compat . hbase-assembly hbase-examples hbase-hadoop2-compat hbase-metrics hbase-server U: . Console output https://builds.apache.org/job/PreCommit-HBASE-Build/5433/console Powered by Apache Yetus 0.3.0 http://yetus.apache.org This message was automatically generated.
          Hide
          enis Enis Soztutar added a comment -

          I've committed this. Thanks Josh and Stack for taking a look.

          Show
          enis Enis Soztutar added a comment - I've committed this. Thanks Josh and Stack for taking a look.
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in Jenkins build HBase-Trunk_matrix #2385 (See https://builds.apache.org/job/HBase-Trunk_matrix/2385/)
          HBASE-9774 HBase native metrics and metric collection for coprocessors (enis: rev c64a1d199402d6bf2d6ff4168c00c756dcaa59e4)

          • (edit) hbase-hadoop-compat/pom.xml
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java
          • (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestTimerImpl.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestFastLongHistogram.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/package-info.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
          • (delete) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java
          • (add) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.java
          • (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Histogram.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java
          • (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryFactoryImpl.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestDropwizardMeter.java
          • (add) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.java
          • (edit) hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistriesLoader.java
          • (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Meter.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableRangeHistogram.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Gauge.java
          • (add) hbase-metrics-api/src/test/java/org/apache/hadoop/hbase/metrics/TestMetricRegistriesLoader.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestHistogramImpl.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
          • (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryInfo.java
          • (add) hbase-metrics-api/README.txt
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/HistogramImpl.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/PackageMarker.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Timer.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
          • (edit) hbase-hadoop2-compat/pom.xml
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistries.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Snapshot.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java
          • (add) hbase-metrics/pom.xml
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/TimerImpl.java
          • (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricSet.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/package-info.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
          • (add) hbase-metrics-api/pom.xml
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Metric.java
          • (add) hbase-metrics/README.txt
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGauge.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryFactory.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Counter.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistry.java
          • (edit) hbase-server/pom.xml
          • (edit) hbase-assembly/pom.xml
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestRefCountingMap.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestCounterImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/RefCountingMap.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java
          • (delete) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java
          • (edit) pom.xml
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableHistogram.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/CounterImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistriesImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/DropwizardMeter.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java
          • (add) hbase-metrics/src/main/resources/META-INF/services/org.apache.hadoop.hbase.metrics.MetricRegistries
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build HBase-Trunk_matrix #2385 (See https://builds.apache.org/job/HBase-Trunk_matrix/2385/ ) HBASE-9774 HBase native metrics and metric collection for coprocessors (enis: rev c64a1d199402d6bf2d6ff4168c00c756dcaa59e4) (edit) hbase-hadoop-compat/pom.xml (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestTimerImpl.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestFastLongHistogram.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/package-info.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java (delete) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java (add) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.java (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Histogram.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryFactoryImpl.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestDropwizardMeter.java (add) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.java (edit) hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistriesLoader.java (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Meter.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableRangeHistogram.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Gauge.java (add) hbase-metrics-api/src/test/java/org/apache/hadoop/hbase/metrics/TestMetricRegistriesLoader.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestHistogramImpl.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryInfo.java (add) hbase-metrics-api/README.txt (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/HistogramImpl.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/PackageMarker.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Timer.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (edit) hbase-hadoop2-compat/pom.xml (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistries.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Snapshot.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java (add) hbase-metrics/pom.xml (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/TimerImpl.java (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricSet.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/package-info.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java (add) hbase-metrics-api/pom.xml (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Metric.java (add) hbase-metrics/README.txt (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGauge.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryFactory.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Counter.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistry.java (edit) hbase-server/pom.xml (edit) hbase-assembly/pom.xml (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestRefCountingMap.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestCounterImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/RefCountingMap.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java (delete) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java (edit) pom.xml (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableHistogram.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/CounterImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistriesImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/DropwizardMeter.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java (add) hbase-metrics/src/main/resources/META-INF/services/org.apache.hadoop.hbase.metrics.MetricRegistries
          Hide
          uagashe Umesh Agashe added a comment -

          Hi Enis Soztutar, I am working on adding new set of Assignment Manager metrics based on hbase-metrics-api. As HBase is moving away from Hadoop's metric2, I think this patch is a good start to have HBase specific independent metrics. Do you have plans/ thoughts on how metrics description can be made available to user? Thanks, Umesh

          Show
          uagashe Umesh Agashe added a comment - Hi Enis Soztutar , I am working on adding new set of Assignment Manager metrics based on hbase-metrics-api. As HBase is moving away from Hadoop's metric2, I think this patch is a good start to have HBase specific independent metrics. Do you have plans/ thoughts on how metrics description can be made available to user? Thanks, Umesh
          Hide
          enis Enis Soztutar added a comment -

          As HBase is moving away from Hadoop's metric2, I think this patch is a good start to have HBase specific independent metrics.

          Makes sense. We should start using this lib inside HBase.

          Do you have plans/ thoughts on how metrics description can be made available to user?

          I don't think the dropwizard API supports the metric descriptions thats why it is not there in our API as well. Not sure how useful the metric descriptions are.

          Show
          enis Enis Soztutar added a comment - As HBase is moving away from Hadoop's metric2, I think this patch is a good start to have HBase specific independent metrics. Makes sense. We should start using this lib inside HBase. Do you have plans/ thoughts on how metrics description can be made available to user? I don't think the dropwizard API supports the metric descriptions thats why it is not there in our API as well. Not sure how useful the metric descriptions are.
          Hide
          uagashe Umesh Agashe added a comment -

          Not sure how useful the metric descriptions are.

          IMHO, for Operators descriptions will be very useful, considering metric names are often concise. One idea is to include them in ref guide. thanks!

          Show
          uagashe Umesh Agashe added a comment - Not sure how useful the metric descriptions are. IMHO, for Operators descriptions will be very useful, considering metric names are often concise. One idea is to include them in ref guide. thanks!
          Hide
          hudson Hudson added a comment -

          FAILURE: Integrated in Jenkins build HBase-1.4 #747 (See https://builds.apache.org/job/HBase-1.4/747/)
          HBASE-18060 Backport to branch-1 HBASE-9774 HBase native metrics and (apurtell: rev a3c3f1012d0eae531c8f38ac5c7e7b81402d8a84)

          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryFactory.java
          • (edit) hbase-hadoop2-compat/pom.xml
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/TimerImpl.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/PackageMarker.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistriesLoader.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/package-info.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/package-info.java
          • (add) hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGlobalMetricRegistriesAdapter.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java
          • (edit) hbase-assembly/pom.xml
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
          • (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestTimerImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/DropwizardMeter.java
          • (delete) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Counter.java
          • (edit) pom.xml
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestCounterImpl.java
          • (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricSet.java
          • (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java
          • (edit) hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java
          • (add) hbase-metrics-api/src/test/java/org/apache/hadoop/hbase/metrics/TestMetricRegistriesLoader.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableHistogram.java
          • (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java
          • (add) hbase-metrics-api/README.txt
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistries.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestRefCountingMap.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/HistogramImpl.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestFastLongHistogram.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryImpl.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestHistogramImpl.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryFactoryImpl.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.java
          • (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/Striped64.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java
          • (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Snapshot.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Gauge.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryInfo.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistriesImpl.java
          • (add) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/RefCountingMap.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java
          • (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/CounterImpl.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Timer.java
          • (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java
          • (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableRangeHistogram.java
          • (edit) hbase-server/pom.xml
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java
          • (edit) hbase-hadoop-compat/pom.xml
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java
          • (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/LongAdder.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Meter.java
          • (delete) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java
          • (add) hbase-metrics/README.txt
          • (edit) hbase-resource-bundle/src/main/resources/supplemental-models.xml
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGauge.java
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Metric.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java
          • (add) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.java
          • (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java
          • (add) hbase-metrics-api/pom.xml
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistry.java
          • (add) hbase-metrics/src/main/resources/META-INF/services/org.apache.hadoop.hbase.metrics.MetricRegistries
          • (add) hbase-metrics/pom.xml
          • (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Histogram.java
          • (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestDropwizardMeter.java
          Show
          hudson Hudson added a comment - FAILURE: Integrated in Jenkins build HBase-1.4 #747 (See https://builds.apache.org/job/HBase-1.4/747/ ) HBASE-18060 Backport to branch-1 HBASE-9774 HBase native metrics and (apurtell: rev a3c3f1012d0eae531c8f38ac5c7e7b81402d8a84) (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryFactory.java (edit) hbase-hadoop2-compat/pom.xml (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/TimerImpl.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/PackageMarker.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistriesLoader.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/package-info.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/package-info.java (add) hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGlobalMetricRegistriesAdapter.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheStats.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java (edit) hbase-assembly/pom.xml (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionServerCoprocessorEnvironment.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/FastLongHistogram.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestTimerImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/DropwizardMeter.java (delete) hbase-common/src/main/java/org/apache/hadoop/hbase/util/FastLongHistogram.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Counter.java (edit) pom.xml (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestCounterImpl.java (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/token/TestTokenAuthentication.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricSet.java (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleRegionObserverWithMetrics.java (edit) hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSource.java (add) hbase-metrics-api/src/test/java/org/apache/hadoop/hbase/metrics/TestMetricRegistriesLoader.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableHistogram.java (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java (add) hbase-metrics-api/README.txt (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistries.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestRefCountingMap.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/BaseSourceImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/HistogramImpl.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestFastLongHistogram.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryImpl.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestHistogramImpl.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistryFactoryImpl.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestMetricRegistryImpl.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/WALCoprocessorEnvironment.java (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/Striped64.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.java (add) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/metrics/impl/GlobalMetricRegistriesAdapter.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Snapshot.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Gauge.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistryInfo.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/MetricRegistriesImpl.java (add) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/RefCountingMap.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/DefaultMetricsSystemHelper.java (add) hbase-metrics/src/main/java/org/apache/hadoop/hbase/metrics/impl/CounterImpl.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Timer.java (add) hbase-examples/src/main/java/org/apache/hadoop/hbase/coprocessor/example/ExampleMasterObserverWithMetrics.java (edit) hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MutableRangeHistogram.java (edit) hbase-server/pom.xml (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java (edit) hbase-hadoop-compat/pom.xml (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterCoprocessorEnvironment.java (add) hbase-common/src/main/java/org/apache/hadoop/hbase/util/LongAdder.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Meter.java (delete) hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestFastLongHistogram.java (add) hbase-metrics/README.txt (edit) hbase-resource-bundle/src/main/resources/supplemental-models.xml (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestGauge.java (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Metric.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/AgeSnapshot.java (add) hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestCoprocessorMetrics.java (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.java (add) hbase-metrics-api/pom.xml (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/MetricRegistry.java (add) hbase-metrics/src/main/resources/META-INF/services/org.apache.hadoop.hbase.metrics.MetricRegistries (add) hbase-metrics/pom.xml (add) hbase-metrics-api/src/main/java/org/apache/hadoop/hbase/metrics/Histogram.java (add) hbase-metrics/src/test/java/org/apache/hadoop/hbase/metrics/impl/TestDropwizardMeter.java

            People

            • Assignee:
              enis Enis Soztutar
              Reporter:
              ghelmling Gary Helmling
            • Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development