All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.hadoop.hbase.generated.master.table_jsp Maven / Gradle / Ivy

There is a newer version: 3.0.0-beta-1
Show newest version
package org.apache.hadoop.hbase.generated.master;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import static org.apache.commons.lang.StringEscapeUtils.escapeXml;
import java.net.URLEncoder;
import java.util.TreeMap;
import java.util.Map;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.HConnectionManager;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.ServerName;
import org.apache.hadoop.hbase.ServerLoad;
import org.apache.hadoop.hbase.RegionLoad;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.master.HMaster;
import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest;
import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.RegionReplicaUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;

public final class table_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.Vector _jspx_dependants;

  private org.apache.jasper.runtime.ResourceInjector _jspx_resourceInjector;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;

    try {
      response.setContentType("text/html;charset=UTF-8");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
      _jspx_resourceInjector = (org.apache.jasper.runtime.ResourceInjector) application.getAttribute("com.sun.appserv.jsp.resource.injector");

      out.write('\n');
      out.write('\n');

  HMaster master = (HMaster)getServletContext().getAttribute(HMaster.MASTER);
  Configuration conf = master.getConfiguration();
  MetaTableLocator metaTableLocator = new MetaTableLocator();
  String fqtn = request.getParameter("name");
  final String escaped_fqtn = StringEscapeUtils.escapeHtml(fqtn);
  HTable table = null;
  String tableHeader;
  boolean withReplica = false;
  ServerName rl = metaTableLocator.getMetaRegionLocation(master.getZooKeeper());
  boolean showFragmentation = conf.getBoolean("hbase.master.ui.fragmentation.enabled", false);
  boolean readOnly = conf.getBoolean("hbase.master.ui.readonly", false);
  int numMetaReplicas = conf.getInt(HConstants.META_REPLICAS_NUM,
                        HConstants.DEFAULT_META_REPLICA_NUM);
  Map frags = null;
  if (showFragmentation) {
      frags = FSUtils.getTableFragmentation(master);
  }
  String action = request.getParameter("action");
  String key = request.getParameter("key");

      out.write("\n\n\n\n  \n    \n    ");
 if ( !readOnly && action != null ) { 
      out.write("\n        HBase Master: ");
      out.print( StringEscapeUtils.escapeHtml(master.getServerName().toString()) );
      out.write("\n    ");
 } else { 
      out.write("\n        Table: ");
      out.print( escaped_fqtn );
      out.write("\n    ");
 } 
      out.write("\n    \n    \n    \n\n\n      \n      \n      \n      ");
 if ( ( !readOnly && action != null ) || fqtn == null ) { 
      out.write("\n\t  \n      ");
 } else { 
      out.write("\n      \n      ");
 } 
      out.write("\n\n\n
\n
\n
\n \n \"HBase\n
\n
\n \n
\n
\n
\n"); if ( fqtn != null ) { table = new HTable(conf, fqtn); if (table.getTableDescriptor().getRegionReplication() > 1) { tableHeader = "

Table Regions

"; withReplica = true; } else { tableHeader = "

Table Regions

NameRegion ServerStart KeyEnd KeyLocalityRequestsReplicaID
"; } if ( !readOnly && action != null ) { out.write("\n
\n
\n
\n

Table action request accepted

\n
\n
\n


\n"); try (Admin admin = master.getConnection().getAdmin()) { if (action.equals("split")) { if (key != null && key.length() > 0) { admin.splitRegion(Bytes.toBytes(key)); } else { admin.split(TableName.valueOf(fqtn)); } out.write(" Split request accepted. "); } else if (action.equals("compact")) { if (key != null && key.length() > 0) { admin.compactRegion(Bytes.toBytes(key)); } else { admin.compact(TableName.valueOf(fqtn)); } out.write(" Compact request accepted. "); } } out.write("\n

Go Back, or wait for the redirect.\n

\n"); } else { out.write("\n
\n
\n
\n

Table "); out.print( escaped_fqtn ); out.write("

\n
\n
\n
\n"); if(fqtn.equals(TableName.META_TABLE_NAME.getNameAsString())) { out.write('\n'); out.print( tableHeader ); out.write('\n'); // NOTE: Presumes meta with one or more replicas for (int j = 0; j < numMetaReplicas; j++) { HRegionInfo meta = RegionReplicaUtil.getRegionInfoForReplica( HRegionInfo.FIRST_META_REGIONINFO, j); ServerName metaLocation = metaTableLocator.waitMetaRegionLocation(master.getZooKeeper(), j, 1); for (int i = 0; i < 1; i++) { // The host name portion should be safe, but I don't know how we handle IDNs so err on the side of failing safely. String url = "//" + URLEncoder.encode(metaLocation.getHostname()) + ":" + master.getRegionServerInfoPort(metaLocation) + "/"; out.write("\n
\n \n \n \n \n \n \n"); if (withReplica) { out.write("\n \n"); } out.write("\n\n"); } out.write('\n'); } out.write("\n
NameRegion ServerStart KeyEnd KeyLocalityRequests
"); out.print( escapeXml(meta.getRegionNameAsString()) ); out.write("'); out.print( StringEscapeUtils.escapeHtml(metaLocation.getHostname().toString()) + ":" + master.getRegionServerInfoPort(metaLocation) ); out.write(""); out.print( escapeXml(Bytes.toString(meta.getStartKey())) ); out.write(""); out.print( escapeXml(Bytes.toString(meta.getEndKey())) ); out.write("--"); out.print( meta.getReplicaId() ); out.write("
\n"); } else { Admin admin = master.getConnection().getAdmin(); try { out.write("\n

Table Attributes

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"); if (showFragmentation) { out.write("\n \n \n \n \n \n"); } out.write("\n
Attribute NameValueDescription
Enabled"); out.print( admin.isTableEnabled(table.getName()) ); out.write("Is the table enabled
Compaction\n"); try { CompactionState compactionState = admin.getCompactionState(table.getName()); out.write('\n'); out.print( compactionState ); out.write('\n'); } catch (Exception e) { // Nothing really to do here for(StackTraceElement element : e.getStackTrace()) { out.print( StringEscapeUtils.escapeHtml(element.toString()) ); } out.write(" Unknown "); } out.write("\n Is the table compacting
Fragmentation"); out.print( frags.get(fqtn) != null ? frags.get(fqtn).intValue() + "%" : "n/a" ); out.write("How fragmented is the table. After a major compaction it is 0%.
\n"); Map regDistribution = new TreeMap(); Map regions = table.getRegionLocations(); if(regions != null && regions.size() > 0) { out.write('\n'); out.print( tableHeader ); out.write('\n'); for (Map.Entry hriEntry : regions.entrySet()) { HRegionInfo regionInfo = hriEntry.getKey(); ServerName addr = hriEntry.getValue(); long req = 0; float locality = 0.0f; if (addr != null) { ServerLoad sl = master.getServerManager().getLoad(addr); if (sl != null) { Map map = sl.getRegionsLoad(); if (map.containsKey(regionInfo.getRegionName())) { req = map.get(regionInfo.getRegionName()).getRequestsCount(); locality = map.get(regionInfo.getRegionName()).getDataLocality(); } Integer i = regDistribution.get(addr); if (null == i) i = Integer.valueOf(0); regDistribution.put(addr, i + 1); } } out.write("\n\n "); out.print( escapeXml(Bytes.toStringBinary(regionInfo.getRegionName())) ); out.write("\n "); if (addr != null) { String url = "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status"; out.write("\n \n '); out.print( StringEscapeUtils.escapeHtml(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) ); out.write("\n \n "); } else { out.write("\n not deployed\n "); } out.write("\n "); out.print( escapeXml(Bytes.toStringBinary(regionInfo.getStartKey())) ); out.write("\n "); out.print( escapeXml(Bytes.toStringBinary(regionInfo.getEndKey())) ); out.write("\n "); out.print( locality); out.write("\n "); out.print( req); out.write("\n "); if (withReplica) { out.write("\n "); out.print( regionInfo.getReplicaId() ); out.write("\n "); } out.write("\n\n"); } out.write("\n\n

Regions by Region Server

\n\n"); for (Map.Entry rdEntry : regDistribution.entrySet()) { ServerName addr = rdEntry.getKey(); String url = "//" + URLEncoder.encode(addr.getHostname()) + ":" + master.getRegionServerInfoPort(addr) + "/rs-status"; out.write("\n\n \n \n\n"); } out.write("\n
Region ServerRegion Count
'); out.print( StringEscapeUtils.escapeHtml(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) ); out.write(""); out.print( rdEntry.getValue()); out.write("
\n"); } } catch(Exception ex) { for(StackTraceElement element : ex.getStackTrace()) { out.print( StringEscapeUtils.escapeHtml(element.toString()) ); } } finally { admin.close(); } } // end else out.write("\n\n\n"); if (!readOnly) { out.write("\n


\nActions:\n

\n

\n\n\n \n \n \n \n \n \n \n \n\n\n\n \n \n \n \n \n \n \n \n\n
\n  Region Key (optional):This action will force a compaction of all\n regions of the table, or, if a key is supplied, only the region containing the\n given key.
 
\n  Region Key (optional):This action will force a split of all eligible\n regions of the table, or, if a key is supplied, only the region containing the\n given key. An eligible region is one that does not contain any references to\n other regions. Split requests for noneligible regions will be ignored.
\n
\n

\n"); } out.write("\n
\n\n"); } } else { // handle the case for fqtn is null with error message + redirect out.write("\n
\n
\n
\n

Table not ready

\n
\n
\n


\n

Go Back, or wait for the redirect.\n

\n"); } out.write("\n\n\n\n\n\n"); } catch (Throwable t) { if (!(t instanceof SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) out.clearBuffer(); if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy