hbase-webapps.master.rits.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
Server functionality for HBase
<%--
/**
* 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.
*/
--%>
<%@ page contentType="text/html;charset=UTF-8"
import="static org.apache.commons.lang3.StringEscapeUtils.escapeXml"
import="java.util.Collections"
import="java.util.Comparator"
import="java.util.List"
import="java.util.stream.Collectors"
import="org.apache.hadoop.hbase.master.HMaster"
import="org.apache.hadoop.hbase.master.assignment.RegionStateNode"
import="org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure"
%>
<%
HMaster master = (HMaster) getServletContext().getAttribute(HMaster.MASTER);
List rit = master.getAssignmentManager().getRegionsInTransition();
String table = request.getParameter("table");
String state = request.getParameter("state");
if (table != null && state != null && !table.equals("null") && !state.equals("null")) {
rit = rit.stream().filter(regionStateNode -> regionStateNode.getTable().getNameAsString().equals(table))
.filter(regionStateNode -> regionStateNode.getState().name().equals(state))
.collect(Collectors.toList());
}
String format = request.getParameter("format");
if(format == null || format.isEmpty()){
format = "html";
}
String filter = request.getParameter("filter");
Collections.sort(rit, new Comparator() {
@Override
public int compare(RegionStateNode o1, RegionStateNode o2) {
if (o1.getState() != o2.getState()){
return o1.getState().ordinal() - o2.getState().ordinal();
}
return o1.compareTo(o2);
}
});
%>
<% if (format.equals("html")) { %>
Regions in transition
Regions in text format
Procedures in text format
regions and procedures in text format can be copied and passed to command-line utils such as hbck2
<% if (rit != null && rit.size() > 0) { %>
Region
Table
RegionState
Procedure
ProcedureState
<% for (RegionStateNode regionStateNode : rit) { %>
<%= regionStateNode.getRegionInfo().getEncodedName() %>
<%= regionStateNode.getRegionInfo().getTable() %>
<%= regionStateNode.getState() %>
<%
TransitRegionStateProcedure procedure = regionStateNode.getProcedure();
if (procedure == null) {
%>
<% } else { %>
<%= procedure.getProcId() %>
<%= escapeXml(procedure.getState().toString() + (procedure.isBypass() ? "(Bypassed)" : "")) %>
<% } %>
<% } %>
<%= rit.size() %> region(s) in transition.
<% } else { %>
no region in transition right now.
<% } %>
<% } else { %>
<%
if (filter.equals("region")) {
for (RegionStateNode regionStateNode : rit) { %>
<%= regionStateNode.getRegionInfo().getEncodedName() %>
<% }
} else if (filter.equals("procedure")) {
for (RegionStateNode regionStateNode : rit) { %>
<%= regionStateNode.getProcedure().getProcId() %>
<% }
} else { %>
"Not a valid filter"
<% } %>
<% } %>