123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <!--
- 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.
- -->
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="X-UA-Compatible" content="IE=9" />
- <link rel="stylesheet" type="text/css" href="/static/bootstrap-3.0.2/css/bootstrap.min.css" />
- <link rel="stylesheet" type="text/css" href="/static/dataTables.bootstrap.css" />
- <link rel="stylesheet" type="text/css" href="/static/rbf.css" />
- <title>Router Information</title>
- </head>
- <body>
- <header class="navbar navbar-inverse bs-docs-nav" role="banner">
- <div class="container">
- <div class="navbar-header">
- <div class="navbar-brand">Hadoop</div>
- </div>
- <ul class="nav navbar-nav" id="ui-tabs">
- <li><a href="#tab-overview">Overview</a></li>
- <li><a href="#tab-namenode">Subclusters</a></li>
- <li><a href="#tab-router">Routers</a></li>
- <li><a href="#tab-datanode">Datanodes</a></li>
- <li><a href="#tab-mounttable">Mount table</a></li>
- <li class="dropdown">
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">Utilities <b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="jmx">Metrics</a></li>
- <li><a href="conf">Configuration</a></li>
- <li><a href="logs">Logs</a></li>
- <li><a href="fsck">FSCK</a></li>
- </ul>
- </li>
- </ul>
- </div>
- </header>
- <div class="container">
- <div id="alert-panel">
- <div class="alert alert-danger">
- <button type="button" class="close" onclick="$('#alert-panel').hide();">×</button>
- <div class="alert-body" id="alert-panel-body"></div>
- </div>
- </div>
- <div class="tab-content">
- <div class="tab-pane" id="tab-overview"></div>
- <div class="tab-pane" id="tab-namenode"></div>
- <div class="tab-pane" id="tab-router"></div>
- <div class="tab-pane" id="tab-datanode"></div>
- <div class="tab-pane" id="tab-mounttable"></div>
- </div>
- <div class="row">
- <hr />
- <div class="col-xs-2"><p>Hadoop, {release-year-token}.</p></div>
- </div>
- </div>
- <!-- Overview -->
- <script type="text/x-dust-template" id="tmpl-federationhealth">
- <div class="page-header"><h1>Router {#federation}<small>'{HostAndPort}'</small>{/federation}</h1></div>
- {#federation}
- <table class="table table-bordered table-striped">
- <tr><th>Started:</th><td>{RouterStarted}</td></tr>
- <tr><th>Version:</th><td>{Version}</td></tr>
- <tr><th>Compiled:</th><td>{CompileInfo}</td></tr>
- <tr><th>Cluster ID:</th><td>{ClusterId}</td></tr>
- <tr><th>Block Pool ID:</th><td>{BlockPoolId}</td></tr>
- <tr><th>Status:</th><td>{RouterStatus}</td></tr>
- </table>
- {/federation}
- <div class="page-header"><h1>Summary</h1></div>
- {#federation}
- <table class="table table-bordered table-striped">
- <tr><th>Total capacity</th><td>{TotalCapacity|fmt_bytes}</td></tr>
- <tr><th>Used capacity</th><td>{UsedCapacity|fmt_bytes}</td></tr>
- <tr><th>Remaining capacity</th><td>{RemainingCapacity|fmt_bytes}</td></tr>
- <tr><th>Nameservices</th><td>{NumNameservices}</td></tr>
- <tr><th>Namenodes</th><td>{NumNamenodes}</td></tr>
- <tr>
- <th>DataNodes usages% (Min/Median/Max/stdDev)</th>
- <td>{#NodeUsage.nodeUsage}{min} / {median} / {max} / {stdDev}{/NodeUsage.nodeUsage}</td>
- </tr>
- <tr><th><a href="#tab-datanode">Live Nodes</a></th><td>{NumLiveNodes} (Decommissioned: {NumDecomLiveNodes})</td></tr>
- <tr><th><a href="#tab-datanode">Dead Nodes</a></th><td>{NumDeadNodes} (Decommissioned: {NumDecomDeadNodes})</td></tr>
- <tr><th><a href="#tab-datanode">Decommissioning Nodes</a></th><td>{NumDecommissioningNodes}</td></tr>
- <tr><th>Files</th><td>{NumFiles}</td></tr>
- <tr><th>Blocks</th><td>{NumBlocks}</td></tr>
- <tr><th title="Excludes missing blocks.">Number of Under-Replicated Blocks</th><td>{NumOfBlocksUnderReplicated}</td></tr>
- <tr><th>Number of Blocks Pending Deletion</th><td>{NumOfBlocksPendingDeletion}</td></tr>
- </table>
- {/federation}
- </script>
- <!-- Subclusters info: list of nameservices and namenodes -->
- <script type="text/x-dust-template" id="tmpl-namenode">
- <div class="page-header"><h1>Nameservice Information</h1></div>
- <div>
- <ul class="federationhealth-namenode-legend">
- <li class="federationhealth-namenode-icon federationhealth-namenode-active">Active</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-standby">Standby</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-safemode">Safe mode</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-unavailable">Unavailable</li>
- </ul>
- </div>
- <small>
- <table class="table">
- <thead>
- <tr>
- <th colspan="6"></th>
- <th colspan="3">Blocks</th>
- <th colspan="2">Nodes</th>
- <th colspan="3">Decom</th>
- </tr>
- <tr>
- <th></th>
- <th>Nameservice</th>
- <th>Namenode</th>
- <th>Last Contact</th>
- <th>Capacity</th>
- <th>Files</th>
- <th>Total</th>
- <th>Missing</th>
- <th>Under-Replicated</th>
- <th>Live</th>
- <th>Dead</th>
- <th>Progress</th>
- <th>Live</th>
- <th>Dead</th>
- </tr>
- </thead>
- <tbody>
- {#Nameservices}
- <tr>
- <td class="federationhealth-namenode-icon federationhealth-namenode-{iconState}" title="{title}"></td>
- <td><a href="http://{webAddress}">{nameserviceId}</a></td>
- <td><a href="http://{webAddress}">{namenodeId}</a></td>
- <td>{lastHeartbeat}</td>
- <td ng-value="{usedPercentage}" style="width:210px">
- <div>
- <div style="display:inline-block; float: left; padding-right: 10px; width:60px;">{totalSpace|fmt_bytes}</div>
- <div class="clearfix progress federationhealth-namenode-capacity-bar" title="Used: {used|fmt_bytes}">
- <div class="progress-bar {#helper_usage_bar value="{usedPercentage}"/}" style="width: {usedPercentage}%">
- </div>
- </div>
- </div>
- </td>
- <td>{numOfFiles}</td>
- <td>{numOfBlocks}</td>
- <td>{numOfBlocksMissing}</td>
- <td>{numOfBlocksUnderReplicated}</td>
- <td>{numOfActiveDatanodes}</td>
- <td>{numOfDeadDatanodes}</td>
- <td>{numOfDecommissioningDatanodes}</td>
- <td>{numOfDecomActiveDatanodes}</td>
- <td>{numOfDecomDeadDatanodes}</td>
- </tr>
- {/Nameservices}
- </tbody>
- </table>
- </small>
- <div class="page-header"><h1>Namenode Information</h1></div>
- <div>
- <ul class="federationhealth-namenode-legend">
- <li class="federationhealth-namenode-icon federationhealth-namenode-active">Active</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-standby">Standby</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-safemode">Safe mode</li>
- <li class="federationhealth-namenode-icon federationhealth-namenode-unavailable">Unavailable</li>
- </ul>
- </div>
- <small>
- <table class="table">
- <thead>
- <tr>
- <th colspan="7"></th>
- <th colspan="3">Blocks</th>
- <th colspan="2">Nodes</th>
- <th colspan="3">Decom</th>
- </tr>
- <tr>
- <th></th>
- <th colspan="2">Namenode</th>
- <th>Web address</th>
- <th>Last Contact</th>
- <th>Capacity</th>
- <th>Files</th>
- <th>Total</th>
- <th>Missing</th>
- <th>Under-Replicated</th>
- <th>Live</th>
- <th>Dead</th>
- <th>Progress</th>
- <th>Live</th>
- <th>Dead</th>
- </tr>
- </thead>
- <tbody>
- {#Namenodes}
- <tr>
- <td class="federationhealth-namenode-icon federationhealth-namenode-{iconState}" title="{title}"></td>
- <td>{nameserviceId}</td>
- <td>{namenodeId}</td>
- <td><a href="http://{webAddress}">{webAddress}</a></td>
- <td>{lastHeartbeat}</td>
- <td ng-value="{usedPercentage}" style="width:210px">
- <div>
- <div style="display:inline-block; float: left; padding-right: 10px; width:60px;">{totalSpace|fmt_bytes}</div>
- <div class="clearfix progress federationhealth-namenode-capacity-bar" title="Used: {used|fmt_bytes}">
- <div class="progress-bar {#helper_usage_bar value="{usedPercentage}"/}" style="width: {usedPercentage}%">
- </div>
- </div>
- </div>
- </td>
- <td>{numOfFiles}</td>
- <td>{numOfBlocks}</td>
- <td>{numOfBlocksMissing}</td>
- <td>{numOfBlocksUnderReplicated}</td>
- <td>{numOfActiveDatanodes}</td>
- <td>{numOfDeadDatanodes}</td>
- <td>{numOfDecommissioningDatanodes}</td>
- <td>{numOfDecomActiveDatanodes}</td>
- <td>{numOfDecomDeadDatanodes}</td>
- </tr>
- {/Namenodes}
- </tbody>
- </table>
- </small>
- </script>
- <!-- Routers -->
- <script type="text/x-dust-template" id="tmpl-router">
- <div class="page-header"><h1>Routers Information</h1></div>
- <div>
- <ul class="federationhealth-router-legend">
- <li class="federationhealth-router-icon federationhealth-router-active">Active</li>
- <li class="federationhealth-router-icon federationhealth-router-safemode">Safe mode</li>
- <li class="federationhealth-router-icon federationhealth-router-unavailable">Unavailable</li>
- </ul>
- </div>
- <table class="table">
- <thead>
- <tr>
- <th colspan="4"></th>
- <th colspan="2">Last update</th>
- <th></th>
- </tr>
- <tr>
- <th></th>
- <th>Address</th>
- <th>Status</th>
- <th>Heartbeat</th>
- <th>Membership</th>
- <th>Mount table</th>
- <th>Version</th>
- </tr>
- </thead>
- <tbody>
- {#Routers}
- <tr>
- <td class="federationhealth-router-icon federationhealth-router-{iconState}" title="{title}"></td>
- <td>{address}</td>
- <td>{status}</td>
- <td>{lastHeartbeat} sec ago</td>
- <td>{lastMembershipUpdate}</td>
- <td>{lastMountTableUpdate}</td>
- <td>{version}</td>
- </tr>
- {/Routers}
- </tbody>
- </table>
- </script>
- <!-- Datanodes -->
- <script type="text/x-dust-template" id="tmpl-datanode">
- <div class="page-header"><h1>Datanode Information</h1></div>
- <div>
- <ul class="dfshealth-node-legend">
- <li class="dfshealth-node-icon dfshealth-node-alive">In service</li>
- <li class="dfshealth-node-icon dfshealth-node-down">Down</li>
- <li class="dfshealth-node-icon dfshealth-node-decommissioned">Decommissioned</li>
- <li class="dfshealth-node-icon dfshealth-node-down-decommissioned">Decommissioned & dead</li>
- </ul>
- </div>
- <div class="page-header"><h1><small>In operation</small></h1></div>
- <small>
- <table class="table" id="table-datanodes">
- <thead>
- <tr>
- <th>Node</th>
- <th>Last contact</th>
- <th style="width:180px; text-align:center">Capacity</th>
- <!--th>Blocks</th-->
- <th>Block pool used</th>
- <!--th>Version</th-->
- </tr>
- </thead>
- {#LiveNodes}
- <tr>
- <td ng-value="{state}-{name}" class="dfshealth-node-icon dfshealth-node-{state}">{location}/{name} ({xferaddr})</td>
- <td ng-value="{lastContact}">{#helper_relative_time value="{lastContact}"/}</td>
- <td ng-value="{usedPercentage}" style="width:210px">
- <div>
- <div style="display:inline-block; float: left; padding-right: 10px; width:60px;">{capacity|fmt_bytes}</div>
- <div class="clearfix progress dfshealth-node-capacity-bar" title="Non DFS: {nonDfsUsedSpace|fmt_bytes}, Used: {used|fmt_bytes}">
- <div class="progress-bar {#helper_usage_bar value="{usedPercentage}"/}" style="width: {usedPercentage}%">
- </div>
- </div>
- </div>
- </td>
- <!--td>{numBlocks}</td-->
- <td ng-value="{blockPoolUsedPercent}">{blockPoolUsed|fmt_bytes} ({blockPoolUsedPercent|fmt_percentage})</td>
- <!--td>{version}</td-->
- </tr>
- {/LiveNodes}
- {#DeadNodes}
- <tr class="danger">
- <td ng-value="{state}-{name}" class="dfshealth-node-icon dfshealth-node-{state}">{location}/{name} ({xferaddr})</td>
- <td>{#helper_relative_time value="{lastContact}"/}</td>
- <td></td>
- <!--td></td-->
- <td></td>
- <!--td></td-->
- </tr>
- {/DeadNodes}
- </table>
- </small>
- <div class="page-header"><h1><small>Decommissioning</small></h1></div>
- <small>
- <table class="table">
- <thead>
- <tr>
- <th>Node</th>
- <th>Under replicated blocks</th>
- <th>Blocks with no live replicas</th>
- <th>Under Replicated Blocks <br/>In files under construction</th>
- </tr>
- </thead>
- {#DecomNodes}
- <tr>
- <td>{location}/{name} ({xferaddr})</td>
- <td>{underReplicatedBlocks}</td>
- <td>{decommissionOnlyReplicas}</td>
- <td>{underReplicateInOpenFiles}</td>
- </tr>
- {/DecomNodes}
- </table>
- </small>
- </script>
- <!-- Mount table -->
- <script type="text/x-dust-template" id="tmpl-mounttable">
- <div class="page-header"><h1>Mount Table</h1></div>
- <small>
- <table class="table">
- <thead>
- <tr>
- <th>Global path</th>
- <th>Target nameservice</th>
- <th>Target path</th>
- <th>Order</th>
- <th>Read only</th>
- <th>Owner</th>
- <th>Group</th>
- <th>Permission</th>
- <th>Quota/Usage</th>
- <th>Date Modified</th>
- <th>Date Created</th>
- </tr>
- </thead>
- <tbody>
- {#MountTable}
- <tr>
- <td>{sourcePath}</td>
- <td>{nameserviceId}</td>
- <td>{path}</td>
- <td>{order}</td>
- <td class="mount-table-icon mount-table-read-only-{readonly}"/>
- <td>{ownerName}</td>
- <td>{groupName}</td>
- <td>{mode}</td>
- <td>{quota}</td>
- <td>{dateModified}</td>
- <td>{dateCreated}</td>
- </tr>
- {/MountTable}
- </tbody>
- </table>
- </small>
- </script>
- <script type="text/javascript" src="/static/jquery-1.10.2.min.js"></script>
- <script type="text/javascript" src="/static/jquery.dataTables.min.js"></script>
- <script type="text/javascript" src="/static/bootstrap-3.0.2/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="/static/dataTables.bootstrap.js"></script>
- <script type="text/javascript" src="/static/moment.min.js"></script>
- <script type="text/javascript" src="/static/dust-full-2.0.0.min.js"></script>
- <script type="text/javascript" src="/static/dust-helpers-1.1.1.min.js"></script>
- <script type="text/javascript" src="/static/dfs-dust.js"></script>
- <script type="text/javascript" src="federationhealth.js"></script>
- </body>
- </html>
|