org.apache.hadoop.hbase.generated.master.table_jsp Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hbase-server Show documentation
Show all versions of hbase-server Show documentation
Main functionality for HBase
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");
if ( fqtn != null ) {
table = new HTable(conf, fqtn);
if (table.getTableDescriptor().getRegionReplication() > 1) {
tableHeader = "Table Regions
Name Region Server Start Key End Key Locality Requests ReplicaID ";
withReplica = true;
} else {
tableHeader = "Table Regions
Name Region Server Start Key End Key Locality Requests ";
}
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 ");
out.print( escapeXml(meta.getRegionNameAsString()) );
out.write(" \n ');
out.print( StringEscapeUtils.escapeHtml(metaLocation.getHostname().toString()) + ":" + master.getRegionServerInfoPort(metaLocation) );
out.write(" \n ");
out.print( escapeXml(Bytes.toString(meta.getStartKey())) );
out.write(" \n ");
out.print( escapeXml(Bytes.toString(meta.getEndKey())) );
out.write(" \n - \n - \n");
if (withReplica) {
out.write("\n ");
out.print( meta.getReplicaId() );
out.write(" \n");
}
out.write("\n \n");
}
out.write('\n');
}
out.write("\n
\n");
} else {
Admin admin = master.getConnection().getAdmin();
try {
out.write("\nTable Attributes
\n\n \n Attribute Name \n Value \n Description \n \n \n Enabled \n ");
out.print( admin.isTableEnabled(table.getName()) );
out.write(" \n Is the table enabled \n \n \n Compaction \n \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 \n Is the table compacting \n \n");
if (showFragmentation) {
out.write("\n \n Fragmentation \n ");
out.print( frags.get(fqtn) != null ? frags.get(fqtn).intValue() + "%" : "n/a" );
out.write(" \n How fragmented is the table. After a major compaction it is 0%. \n \n");
}
out.write("\n
\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
\nRegions by Region Server
\nRegion Server Region Count \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 ');
out.print( StringEscapeUtils.escapeHtml(addr.getHostname().toString()) + ":" + master.getRegionServerInfoPort(addr) );
out.write(" \n ");
out.print( rdEntry.getValue());
out.write(" \n \n");
}
out.write("\n
\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");
}
out.write("\n