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

hbase-webapps.master.rits.jsp Maven / Gradle / Ivy

There is a newer version: 3.0.0-beta-1
Show newest version
<%--
/**
 * 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.ArrayList"
         import="java.util.List"
         import="java.util.HashMap"
         import="java.util.Map"
         import="java.util.stream.Collectors"
         import="org.apache.hadoop.hbase.master.HMaster"
         import="org.apache.hadoop.hbase.master.RegionState"
         import="org.apache.hadoop.hbase.master.assignment.RegionStateNode"
         import="org.apache.hadoop.hbase.master.assignment.TransitRegionStateProcedure"
         import="org.apache.hadoop.hbase.util.GsonUtil"
         import="org.apache.hbase.thirdparty.com.google.gson.Gson"
%>
<%
    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")) { %>

    

<% if (rit != null && rit.size() > 0) { %> <% for (RegionStateNode regionStateNode : rit) { %> <% TransitRegionStateProcedure procedure = regionStateNode.getProcedure(); if (procedure == null) { %> <% } else { %> <% } %> <% RegionState rs = regionStateNode.toRegionState(); %> <% } %>

<%= rit.size() %> region(s) in transition.

Region Table RegionState Server Procedure ProcedureState Start Time Duration (ms)
<%= regionStateNode.getRegionInfo().getEncodedName() %> <%= regionStateNode.getRegionInfo().getTable() %> <%= regionStateNode.getState() %> <%= regionStateNode.getRegionLocation().getServerName() %> <%= procedure.getProcId() %> <%= escapeXml(procedure.getState().toString() + (procedure.isBypass() ? "(Bypassed)" : "")) %><%= rs.getStamp() %> <%= System.currentTimeMillis() - rs.getStamp() %>
<% } else { %>

no region in transition right now.

<% } %>
<% } else if (format.equals("json")) { %> <% Gson GSON = GsonUtil.createGson().create(); Map>> map = new HashMap<>(); List> rits = new ArrayList<>(); map.put("rits", rits); for (RegionStateNode regionStateNode : rit) { Map r = new HashMap<>(); r.put("region", regionStateNode.getRegionInfo().getEncodedName()); r.put("table", regionStateNode.getRegionInfo().getTable().getNameAsString()); r.put("state", regionStateNode.getState()); r.put("server", regionStateNode.getRegionLocation().getServerName()); TransitRegionStateProcedure procedure = regionStateNode.getProcedure(); if (procedure != null) { r.put("procedureId", procedure.getProcId()); r.put("procedureState", procedure.getState().toString()); } RegionState rs = regionStateNode.toRegionState(); r.put("startTime", rs.getStamp()); r.put("duration", System.currentTimeMillis() - rs.getStamp()); rits.add(r); } %> <%= GSON.toJson(map) %> <% } 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" <% } %>

<% } %>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy