You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ja...@apache.org on 2017/05/07 18:12:55 UTC

[06/17] eagle git commit: HBase Naming that unify `Hbase` and `HBase` into `HBase`

http://git-wip-us.apache.org/repos/asf/eagle/blob/cc5d23ba/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hbase/HbaseTopologyEntityParser.java
----------------------------------------------------------------------
diff --git a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hbase/HbaseTopologyEntityParser.java b/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hbase/HbaseTopologyEntityParser.java
deleted file mode 100644
index ce977a9..0000000
--- a/eagle-topology-check/eagle-topology-app/src/main/java/org/apache/eagle/topology/extractor/hbase/HbaseTopologyEntityParser.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-
-package org.apache.eagle.topology.extractor.hbase;
-
-import org.apache.eagle.app.utils.HadoopSecurityUtil;
-import org.apache.eagle.topology.TopologyCheckAppConfig;
-import org.apache.eagle.topology.TopologyConstants;
-import org.apache.eagle.topology.extractor.TopologyEntityParserResult;
-import org.apache.eagle.topology.entity.HBaseServiceTopologyAPIEntity;
-import org.apache.eagle.topology.extractor.TopologyEntityParser;
-import org.apache.eagle.topology.resolver.TopologyRackResolver;
-import org.apache.eagle.topology.utils.EntityBuilderHelper;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.ClusterStatus;
-import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.ServerLoad;
-import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.slf4j.Logger;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.eagle.topology.TopologyConstants.*;
-
-public class HbaseTopologyEntityParser implements TopologyEntityParser {
-
-    private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(HbaseTopologyEntityParser.class);
-    private Configuration hBaseConfiguration;
-    private String site;
-    private Boolean kerberosEnable = false;
-    private TopologyRackResolver rackResolver;
-
-    public HbaseTopologyEntityParser(String site, TopologyCheckAppConfig.HBaseConfig hBaseConfig, TopologyRackResolver resolver) {
-        this.site = site;
-        this.rackResolver = resolver;
-        this.hBaseConfiguration = HBaseConfiguration.create();
-        this.hBaseConfiguration.set("hbase.zookeeper.quorum", hBaseConfig.zkQuorum);
-        this.hBaseConfiguration.set("hbase.zookeeper.property.clientPort", hBaseConfig.zkClientPort);
-        this.hBaseConfiguration.set("zookeeper.znode.parent", hBaseConfig.zkRoot);
-        this.hBaseConfiguration.set("hbase.client.retries.number", hBaseConfig.zkRetryTimes);
-        // kerberos authentication
-        if (hBaseConfig.eaglePrincipal != null && hBaseConfig.eagleKeytab != null
-            && !hBaseConfig.eaglePrincipal.isEmpty() && !hBaseConfig.eagleKeytab.isEmpty()) {
-            this.hBaseConfiguration.set(HadoopSecurityUtil.EAGLE_PRINCIPAL_KEY, hBaseConfig.eaglePrincipal);
-            this.hBaseConfiguration.set(HadoopSecurityUtil.EAGLE_KEYTAB_FILE_KEY, hBaseConfig.eagleKeytab);
-            this.kerberosEnable = true;
-            this.hBaseConfiguration.set("hbase.security.authentication", "kerberos");
-            this.hBaseConfiguration.set("hbase.master.kerberos.principal", hBaseConfig.hbaseMasterPrincipal);
-        }
-    }
-
-    private HBaseAdmin getHBaseAdmin() throws IOException {
-        if (this.kerberosEnable) {
-            HadoopSecurityUtil.login(hBaseConfiguration);
-        }
-        return new HBaseAdmin(this.hBaseConfiguration);
-    }
-
-
-    @Override
-    public TopologyEntityParserResult parse(long timestamp) {
-        final TopologyEntityParserResult result = new TopologyEntityParserResult();
-        int activeRatio = 0;
-        try {
-            doParse(timestamp, result);
-            activeRatio++;
-        } catch (Exception ex) {
-            LOG.error(ex.getMessage(), ex);
-        }
-        result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.HMASTER_ROLE, activeRatio, site, timestamp));
-        return result;
-    }
-
-    private void doParse(long timestamp, TopologyEntityParserResult result) throws IOException {
-        long deadServers = 0;
-        long liveServers = 0;
-        HBaseAdmin admin = null;
-        try {
-            admin = getHBaseAdmin();
-            ClusterStatus status = admin.getClusterStatus();
-            deadServers = status.getDeadServers();
-            liveServers = status.getServersSize();
-
-            for (ServerName liveServer : status.getServers()) {
-                ServerLoad load = status.getLoad(liveServer);
-                result.getSlaveNodes().add(parseServer(liveServer, load, TopologyConstants.REGIONSERVER_ROLE, TopologyConstants.REGIONSERVER_LIVE_STATUS, timestamp));
-            }
-            for (ServerName deadServer : status.getDeadServerNames()) {
-                ServerLoad load = status.getLoad(deadServer);
-                result.getSlaveNodes().add(parseServer(deadServer, load, TopologyConstants.REGIONSERVER_ROLE, TopologyConstants.REGIONSERVER_DEAD_STATUS, timestamp));
-            }
-            ServerName master = status.getMaster();
-            if (master != null) {
-                ServerLoad load = status.getLoad(master);
-                result.getMasterNodes().add(parseServer(master, load, TopologyConstants.HMASTER_ROLE, TopologyConstants.HMASTER_ACTIVE_STATUS, timestamp));
-            }
-            for (ServerName backupMaster : status.getBackupMasters()) {
-                ServerLoad load = status.getLoad(backupMaster);
-                result.getMasterNodes().add(parseServer(backupMaster, load, TopologyConstants.HMASTER_ROLE, TopologyConstants.HMASTER_STANDBY_STATUS, timestamp));
-            }
-            double liveRatio = liveServers * 1d / (liveServers + deadServers);
-            result.getMetrics().add(EntityBuilderHelper.generateMetric(TopologyConstants.REGIONSERVER_ROLE, liveRatio, site, timestamp));
-            LOG.info("live servers: {}, dead servers: {}", liveServers, deadServers);
-        } finally {
-            if (admin != null) {
-                try {
-                    admin.close();
-                } catch (IOException e) {
-                    LOG.error(e.getMessage(), e);
-                }
-            }
-        }
-    }
-
-    private HBaseServiceTopologyAPIEntity parseServer(ServerName serverName, ServerLoad serverLoad, String role, String status, long timestamp) {
-        if (serverName == null) {
-            return null;
-        }
-        HBaseServiceTopologyAPIEntity entity = createEntity(role, serverName.getHostname(), timestamp);
-        parseServerLoad(entity, serverLoad);
-        entity.setStatus(status);
-        return entity;
-    }
-
-    private void parseServerLoad(HBaseServiceTopologyAPIEntity entity, ServerLoad load) {
-        if (load == null) {
-            return;
-        }
-        entity.setMaxHeapMB(load.getMaxHeapMB());
-        entity.setUsedHeapMB(load.getUsedHeapMB());
-        entity.setNumRegions(load.getNumberOfRegions());
-        entity.setNumRequests(load.getNumberOfRequests());
-    }
-
-    private HBaseServiceTopologyAPIEntity createEntity(String roleType, String hostname, long timestamp) {
-        HBaseServiceTopologyAPIEntity entity = new HBaseServiceTopologyAPIEntity();
-        Map<String, String> tags = new HashMap<String, String>();
-        entity.setTags(tags);
-        tags.put(SITE_TAG, site);
-        tags.put(ROLE_TAG, roleType);
-        tags.put(HOSTNAME_TAG, hostname);
-        String rack = rackResolver.resolve(hostname);
-        tags.put(RACK_TAG, rack);
-        entity.setLastUpdateTime(timestamp);
-        entity.setTimestamp(timestamp);
-        return entity;
-    }
-
-    @Override
-    public TopologyConstants.TopologyType getTopologyType() {
-        return TopologyType.HBASE;
-    }
-
-    @Override
-    public TopologyConstants.HadoopVersion getHadoopVersion() {
-        return HadoopVersion.V2;
-    }
-}

http://git-wip-us.apache.org/repos/asf/eagle/blob/cc5d23ba/eagle-topology-check/eagle-topology-app/src/main/resources/META-INF/providers/org.apache.eagle.topology.TopologyCheckAppProvider.xml
----------------------------------------------------------------------
diff --git a/eagle-topology-check/eagle-topology-app/src/main/resources/META-INF/providers/org.apache.eagle.topology.TopologyCheckAppProvider.xml b/eagle-topology-check/eagle-topology-app/src/main/resources/META-INF/providers/org.apache.eagle.topology.TopologyCheckAppProvider.xml
index aa36c53..2e7a23c 100644
--- a/eagle-topology-check/eagle-topology-app/src/main/resources/META-INF/providers/org.apache.eagle.topology.TopologyCheckAppProvider.xml
+++ b/eagle-topology-check/eagle-topology-app/src/main/resources/META-INF/providers/org.apache.eagle.topology.TopologyCheckAppProvider.xml
@@ -81,17 +81,17 @@
         <property>
             <name>dataSourceConfig.hbase.zkQuorum</name>
             <displayName>HBase Zookeeper Quorum</displayName>
-            <description>hbase zookeeper quorum (optional)</description>
+            <description>hBase zookeeper quorum (optional)</description>
         </property>
         <property>
             <name>dataSourceConfig.hbase.zkZnodeParent</name>
-            <displayName>Hbase Zookeeper Znode Parent Root</displayName>
-            <description>hbase zookeeper znode parent root (optional)</description>
+            <displayName>HBase Zookeeper Znode Parent Root</displayName>
+            <description>hBase zookeeper znode parent root (optional)</description>
         </property>
         <property>
             <name>dataSourceConfig.hbase.zkPropertyClientPort</name>
-            <displayName>Hbase Zookeeper Client Port</displayName>
-            <description>hbase zookeeper client port (optional)</description>
+            <displayName>HBase Zookeeper Client Port</displayName>
+            <description>hBase zookeeper client port (optional)</description>
         </property>
 
         <property>

http://git-wip-us.apache.org/repos/asf/eagle/blob/cc5d23ba/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHBaseTopologyCrawler.java
----------------------------------------------------------------------
diff --git a/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHBaseTopologyCrawler.java b/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHBaseTopologyCrawler.java
new file mode 100644
index 0000000..8fbedb3
--- /dev/null
+++ b/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHBaseTopologyCrawler.java
@@ -0,0 +1,40 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.eagle.topology;
+
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
+import org.apache.eagle.topology.extractor.hbase.HBaseTopologyCrawler;
+import org.apache.eagle.topology.resolver.TopologyRackResolver;
+import org.apache.eagle.topology.resolver.impl.DefaultTopologyRackResolver;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class TestHBaseTopologyCrawler {
+
+    @Test @Ignore
+    public void test() {
+        Config config = ConfigFactory.load();
+
+        TopologyCheckAppConfig topologyCheckAppConfig = TopologyCheckAppConfig.newInstance(config);
+        TopologyRackResolver rackResolver = new DefaultTopologyRackResolver();
+        HBaseTopologyCrawler crawler = new HBaseTopologyCrawler(topologyCheckAppConfig, rackResolver, null);
+        crawler.extract();
+    }
+}

http://git-wip-us.apache.org/repos/asf/eagle/blob/cc5d23ba/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHbaseTopologyCrawler.java
----------------------------------------------------------------------
diff --git a/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHbaseTopologyCrawler.java b/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHbaseTopologyCrawler.java
deleted file mode 100644
index 11b6c15..0000000
--- a/eagle-topology-check/eagle-topology-app/src/test/java/org/apache/eagle/topology/TestHbaseTopologyCrawler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-package org.apache.eagle.topology;
-
-import com.typesafe.config.Config;
-import com.typesafe.config.ConfigFactory;
-import org.apache.eagle.topology.extractor.hbase.HbaseTopologyCrawler;
-import org.apache.eagle.topology.resolver.TopologyRackResolver;
-import org.apache.eagle.topology.resolver.impl.DefaultTopologyRackResolver;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class TestHbaseTopologyCrawler {
-
-    @Test @Ignore
-    public void test() {
-        Config config = ConfigFactory.load();
-
-        TopologyCheckAppConfig topologyCheckAppConfig = TopologyCheckAppConfig.newInstance(config);
-        TopologyRackResolver rackResolver = new DefaultTopologyRackResolver();
-        HbaseTopologyCrawler crawler = new HbaseTopologyCrawler(topologyCheckAppConfig, rackResolver, null);
-        crawler.extract();
-    }
-}

http://git-wip-us.apache.org/repos/asf/eagle/blob/cc5d23ba/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/TopologyConstants.java
----------------------------------------------------------------------
diff --git a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/TopologyConstants.java b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/TopologyConstants.java
index 189af22..7be82e4 100644
--- a/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/TopologyConstants.java
+++ b/eagle-topology-check/eagle-topology-entity/src/main/java/org/apache/eagle/topology/TopologyConstants.java
@@ -24,7 +24,7 @@ public class TopologyConstants {
 
     public static final String SYSTEM_INSTANCE_SERVICE_NAME = "SystemServiceInstance";
     public static final String HDFS_INSTANCE_SERVICE_NAME = "HdfsServiceInstance";
-    public static final String HBASE_INSTANCE_SERVICE_NAME = "HbaseServiceInstance";
+    public static final String HBASE_INSTANCE_SERVICE_NAME = "HBaseServiceInstance";
     public static final String MR_INSTANCE_SERVICE_NAME = "MRServiceInstance";
     public static final String JN_INSTANCE_SERVICE_NAME = "JNServiceInstance";
     public static final String GENERIC_METRIC_SERVICE = "GenericMetricService";