HDFS-6013. add rollingUpgrade information to latest UI. Contributed by Vinayakumar B.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/HDFS-5535@1573700 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0a7db7f179
commit
aa8a6e498a
|
@ -130,3 +130,7 @@ HDFS-5535 subtasks:
|
||||||
|
|
||||||
HDFS-6034. Use DataNodeLayoutVersion for DN registration check and do not
|
HDFS-6034. Use DataNodeLayoutVersion for DN registration check and do not
|
||||||
verify layout version if there is a rolling upgrade in progress. (szetszwo)
|
verify layout version if there is a rolling upgrade in progress. (szetszwo)
|
||||||
|
|
||||||
|
HDFS-6013. add rollingUpgrade information to latest UI.
|
||||||
|
(Vinayakumar B via wheat9)
|
||||||
|
|
||||||
|
|
|
@ -94,4 +94,34 @@ public class RollingUpgradeInfo extends RollingUpgradeStatus {
|
||||||
private static String timestamp2String(long timestamp) {
|
private static String timestamp2String(long timestamp) {
|
||||||
return new Date(timestamp) + " (=" + timestamp + ")";
|
return new Date(timestamp) + " (=" + timestamp + ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Bean {
|
||||||
|
private final String blockPoolId;
|
||||||
|
private final long startTime;
|
||||||
|
private final long finalizeTime;
|
||||||
|
private final boolean createdRollbackImages;
|
||||||
|
|
||||||
|
public Bean(RollingUpgradeInfo f) {
|
||||||
|
this.blockPoolId = f.getBlockPoolId();
|
||||||
|
this.startTime = f.startTime;
|
||||||
|
this.finalizeTime = f.finalizeTime;
|
||||||
|
this.createdRollbackImages = f.createdRollbackImages();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBlockPoolId() {
|
||||||
|
return blockPoolId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getFinalizeTime() {
|
||||||
|
return finalizeTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCreatedRollbackImages() {
|
||||||
|
return createdRollbackImages;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7247,6 +7247,20 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
|
||||||
this.needRollbackFsImage = needRollbackFsImage;
|
this.needRollbackFsImage = needRollbackFsImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override // NameNodeMXBean
|
||||||
|
public RollingUpgradeInfo.Bean getRollingUpgradeStatus() {
|
||||||
|
readLock();
|
||||||
|
try {
|
||||||
|
RollingUpgradeInfo upgradeInfo = getRollingUpgradeInfo();
|
||||||
|
if (upgradeInfo != null) {
|
||||||
|
return new RollingUpgradeInfo.Bean(upgradeInfo);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
} finally {
|
||||||
|
readUnlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Is rolling upgrade in progress? */
|
/** Is rolling upgrade in progress? */
|
||||||
public boolean isRollingUpgrade() {
|
public boolean isRollingUpgrade() {
|
||||||
return rollingUpgradeInfo != null;
|
return rollingUpgradeInfo != null;
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.util.Map;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience;
|
import org.apache.hadoop.classification.InterfaceAudience;
|
||||||
import org.apache.hadoop.classification.InterfaceStability;
|
import org.apache.hadoop.classification.InterfaceStability;
|
||||||
|
import org.apache.hadoop.hdfs.protocol.RollingUpgradeInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the JMX management interface for namenode information
|
* This is the JMX management interface for namenode information
|
||||||
|
@ -78,7 +79,14 @@ public interface NameNodeMXBean {
|
||||||
* @return true, if upgrade is finalized
|
* @return true, if upgrade is finalized
|
||||||
*/
|
*/
|
||||||
public boolean isUpgradeFinalized();
|
public boolean isUpgradeFinalized();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the RollingUpgrade information
|
||||||
|
*
|
||||||
|
* @return Rolling upgrade information
|
||||||
|
*/
|
||||||
|
public RollingUpgradeInfo.Bean getRollingUpgradeStatus();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets total used space by data nodes for non DFS purposes such as storing
|
* Gets total used space by data nodes for non DFS purposes such as storing
|
||||||
* temporary files on the local file system
|
* temporary files on the local file system
|
||||||
|
|
|
@ -72,14 +72,26 @@
|
||||||
<script type="text/x-dust-template" id="tmpl-dfshealth">
|
<script type="text/x-dust-template" id="tmpl-dfshealth">
|
||||||
|
|
||||||
{#nn}
|
{#nn}
|
||||||
{@if cond="{DistinctVersionCount} > 1"}
|
{@if cond="{DistinctVersionCount} > 1 || '{RollingUpgradeStatus}'.length"}
|
||||||
<div class="alert alert-dismissable alert-info">
|
<div class="alert alert-dismissable alert-info">
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||||||
|
|
||||||
There are {DistinctVersionCount} versions of datanodes currently live:
|
{#RollingUpgradeStatus}
|
||||||
{#DistinctVersions}
|
<p>Rolling upgrade started at {#helper_date_tostring value="{startTime}"/}. </br>
|
||||||
{key} ({value}) {@sep},{/sep}
|
{#createdRollbackImages}
|
||||||
{/DistinctVersions}
|
Rollback image has been created. Proceed to upgrade daemons.
|
||||||
|
{:else}
|
||||||
|
Rollback image has not been created.
|
||||||
|
{/createdRollbackImages}
|
||||||
|
</p>
|
||||||
|
{/RollingUpgradeStatus}
|
||||||
|
|
||||||
|
{@if cond="{DistinctVersionCount} > 1"}
|
||||||
|
There are {DistinctVersionCount} versions of datanodes currently live:
|
||||||
|
{#DistinctVersions}
|
||||||
|
{key} ({value}) {@sep},{/sep}
|
||||||
|
{/DistinctVersions}
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,11 @@
|
||||||
for (var i in j) {
|
for (var i in j) {
|
||||||
chunk.write('<tr><td>' + i + '</td><td>' + j[i] + '</td><td>' + params.type + '</td></tr>');
|
chunk.write('<tr><td>' + i + '</td><td>' + j[i] + '</td><td>' + params.type + '</td></tr>');
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
'helper_date_tostring' : function (chunk, ctx, bodies, params) {
|
||||||
|
var value = dust.helpers.tap(params.value, chunk, ctx);
|
||||||
|
return chunk.write('' + new Date(Number(value)).toLocaleString());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue