From commits-return-66214-archive-asf-public=cust-asf.ponee.io@hbase.apache.org Sat Jan 27 07:39:48 2018 Return-Path: X-Original-To: archive-asf-public@eu.ponee.io Delivered-To: archive-asf-public@eu.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by mx-eu-01.ponee.io (Postfix) with ESMTP id 53CEE18076D for ; Sat, 27 Jan 2018 07:39:48 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 4222D160C5A; Sat, 27 Jan 2018 06:39:48 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 71A01160C52 for ; Sat, 27 Jan 2018 07:39:47 +0100 (CET) Received: (qmail 79611 invoked by uid 500); 27 Jan 2018 06:39:46 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 79379 invoked by uid 99); 27 Jan 2018 06:39:45 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 27 Jan 2018 06:39:45 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 56F08E02B9; Sat, 27 Jan 2018 06:39:43 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: zhangduo@apache.org To: commits@hbase.apache.org Date: Sat, 27 Jan 2018 06:39:47 -0000 Message-Id: <4198a8f13de348ba87d6e5cc8f600ff6@git.apache.org> In-Reply-To: <36666cfc1eb343f7ae50d2cdf2db1bdc@git.apache.org> References: <36666cfc1eb343f7ae50d2cdf2db1bdc@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [05/14] hbase git commit: HBASE-19861 - Avoid using RPCs when querying table infos for master status pages HBASE-19861 - Avoid using RPCs when querying table infos for master status pages Signed-off-by: tedyu Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/94a1c051 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/94a1c051 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/94a1c051 Branch: refs/heads/HBASE-19064 Commit: 94a1c051ba64bf490b2cc65e5b813176f1d0bb45 Parents: 39b912a Author: haxiaolin Authored: Thu Jan 25 18:47:29 2018 +0800 Committer: tedyu Committed: Fri Jan 26 08:02:14 2018 -0800 ---------------------------------------------------------------------- .../hbase/tmpl/master/MasterStatusTmpl.jamon | 60 ++++++++++------ .../hbase-webapps/master/tablesDetailed.jsp | 76 ++++++++++---------- 2 files changed, 80 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/94a1c051/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon index d0342db..3253a57 100644 --- a/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon +++ b/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon @@ -30,7 +30,9 @@ AssignmentManager assignmentManager = null; <%import> java.util.*; +java.io.IOException; org.apache.hadoop.hbase.client.RegionInfo; +org.apache.hadoop.hbase.client.TableDescriptor; org.apache.hadoop.hbase.HBaseConfiguration; org.apache.hadoop.hbase.HConstants; org.apache.hadoop.hbase.HTableDescriptor; @@ -40,7 +42,6 @@ org.apache.hadoop.hbase.ServerName; org.apache.hadoop.hbase.TableName; org.apache.hadoop.hbase.client.Admin; org.apache.hadoop.hbase.client.MasterSwitchType; -org.apache.hadoop.hbase.client.SnapshotDescription; org.apache.hadoop.hbase.master.assignment.AssignmentManager; org.apache.hadoop.hbase.master.DeadServer; org.apache.hadoop.hbase.master.HMaster; @@ -50,6 +51,7 @@ org.apache.hadoop.hbase.protobuf.ProtobufUtil; org.apache.hadoop.hbase.quotas.QuotaUtil; org.apache.hadoop.hbase.security.access.AccessControlLists; org.apache.hadoop.hbase.security.visibility.VisibilityConstants; +org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription; org.apache.hadoop.hbase.tool.Canary; org.apache.hadoop.hbase.util.Bytes; org.apache.hadoop.hbase.util.FSUtils; @@ -93,6 +95,26 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); } +<%class> + public static String getUserTables(HMaster master, List tables){ + if (master.isInitialized()){ + try { + Map descriptorMap = master.getTableDescriptors().getAll(); + if (descriptorMap != null) { + for (TableDescriptor desc : descriptorMap.values()) { + if (!desc.getTableName().isSystemTable()) { + tables.add(desc); + } + } + } + } catch (IOException e) { + return "Got user tables error, " + e.getMessage(); + } + } + return null; + } + + @@ -363,13 +385,10 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); <%def catalogTables> <%java> - HTableDescriptor[] sysTables = null; - try (Admin admin = master.getConnection().getAdmin()) { - sysTables = master.isInitialized() ? admin.listTableDescriptorsByNamespace( - NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR) : null; - } + List sysTables = master.isInitialized() ? + master.listTableDescriptorsByNamespace(NamespaceDescriptor.SYSTEM_NAMESPACE_NAME_STR) : null; -<%if (sysTables != null && sysTables.length > 0)%> +<%if (sysTables != null && sysTables.size() > 0)%> @@ -378,7 +397,7 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); -<%for HTableDescriptor systemTable : sysTables%> +<%for TableDescriptor systemTable : sysTables%> <%java>TableName tableName = systemTable.getTableName(); @@ -417,12 +436,14 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); <%def userTables> <%java> - HTableDescriptor[] tables = null; - try (Admin admin = master.getConnection().getAdmin()) { - tables = master.isInitialized() ? admin.listTables() : null; - } + List tables = new ArrayList(); + String errorMessage = getUserTables(master, tables); -<%if (tables != null && tables.length > 0)%> +<%if (tables.size() == 0 && errorMessage != null)%> +

<% errorMessage %>

+ + +<%if (tables != null && tables.size() > 0)%>
Table Name Description
<% tableName %>
@@ -437,8 +458,9 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); - <%for HTableDescriptor htDesc : tables%> + <%for TableDescriptor desc : tables%> <%java> + HTableDescriptor htDesc = new HTableDescriptor(desc); TableName tableName = htDesc.getTableName(); Map> tableRegions = master.getAssignmentManager().getRegionStates() @@ -471,17 +493,15 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); -

<% tables.length %> table(s) in set. [Details]

+

<% tables.size() %> table(s) in set. [Details]

NamespaceOther Regions Description
<% htDesc.toStringCustomizedValues() %>
<%def userSnapshots> <%java> - List snapshots = null; - try (Admin admin = master.getConnection().getAdmin()) { - snapshots = master.isInitialized() ? admin.listSnapshots() : null; - } + List snapshots = master.isInitialized() ? + master.getSnapshotManager().getCompletedSnapshots() : null; <%if (snapshots != null && snapshots.size() > 0)%> @@ -492,7 +512,7 @@ AssignmentManager assignmentManager = master.getAssignmentManager(); <%for SnapshotDescription snapshotDesc : snapshots%> <%java> - TableName snapshotTable = snapshotDesc.getTableName(); + TableName snapshotTable = TableName.valueOf(snapshotDesc.getTable()); http://git-wip-us.apache.org/repos/asf/hbase/blob/94a1c051/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp b/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp index 9201748..2ad44a3 100644 --- a/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp +++ b/hbase-server/src/main/resources/hbase-webapps/master/tablesDetailed.jsp @@ -18,51 +18,55 @@ */ --%> <%@ page contentType="text/html;charset=UTF-8" - import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml" - import="org.apache.hadoop.hbase.master.HMaster" - import="org.apache.hadoop.hbase.client.Admin" - import="org.apache.hadoop.hbase.client.Connection" - import="org.apache.hadoop.hbase.HTableDescriptor" + import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml" + import="java.io.IOException" + import="java.util.ArrayList" + import="java.util.List" + import="java.util.Map" %> +<%@ page import="org.apache.hadoop.hbase.client.TableDescriptor" %> +<%@ page import="org.apache.hadoop.hbase.master.HMaster" %> +<%@ page import="org.apache.hadoop.hbase.tmpl.master.MasterStatusTmplImpl" %> <% - HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER); + HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER); pageContext.setAttribute("pageTitle", "HBase Master: " + master.getServerName()); %> - + -
-
- +
+
+ +
-<% HTableDescriptor[] tables; - Connection connection = master.getConnection(); - Admin admin = connection.getAdmin(); - try { - tables = admin.listTables(); - } finally { - admin.close(); - } - if(tables != null && tables.length > 0) { %> -
<% snapshotDesc.getName() %>
- - - - -<% for(HTableDescriptor htDesc : tables ) { %> - - - - -<% } %> + <% List tables = new ArrayList(); + String errorMessage = MasterStatusTmplImpl.getUserTables(master, tables); + if (tables.size() == 0 && errorMessage != null) { %> +

<%= errorMessage %>

+ <% } + if (tables != null && tables.size() > 0) { %> +
TableDescription
<%= escapeXml(htDesc.getTableName().getNameAsString()) %><%= htDesc.toString() %>
+ + + + + <% for (TableDescriptor htDesc : tables) { %> + + + + + <% } %> -

<%= tables.length %> table(s) in set.

-
TableDescription
+ <%= escapeXml( + htDesc.getTableName().getNameAsString()) %> + <%= htDesc.toString() %> +
-<% } %> +

<%= tables.size() %> table(s) in set.

+ + <% } %> - +