| <!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> |