From 25efccba01d02bedebfb7c92e6d2e9ecc2e26926 Mon Sep 17 00:00:00 2001 From: Akira Ajisaka Date: Wed, 2 Sep 2015 14:28:38 +0900 Subject: [PATCH] HDFS-8388. Time and Date format need to be in sync in NameNode UI page. Contributed by Surendra Singh Lilhore. (cherry picked from commit 65ccf2b1252a5c83755fa24a93cf1d30ee59b2c3) --- .../hadoop-common/src/site/markdown/Metrics.md | 2 ++ hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../apache/hadoop/hdfs/server/namenode/FSNamesystem.java | 5 +++++ .../hadoop/hdfs/server/namenode/NameNodeMXBean.java | 6 ++++++ .../hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html | 5 ++--- .../hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js | 6 +++--- .../hadoop-hdfs/src/main/webapps/hdfs/explorer.html | 1 + .../hadoop-hdfs/src/main/webapps/hdfs/explorer.js | 2 +- .../hadoop-hdfs/src/main/webapps/static/dfs-dust.js | 8 +++++++- 9 files changed, 30 insertions(+), 8 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/site/markdown/Metrics.md b/hadoop-common-project/hadoop-common/src/site/markdown/Metrics.md index 2e9a4f7cc82..75dfc9f8f2d 100644 --- a/hadoop-common-project/hadoop-common/src/site/markdown/Metrics.md +++ b/hadoop-common-project/hadoop-common/src/site/markdown/Metrics.md @@ -191,6 +191,8 @@ Each metrics record contains tags such as ProcessName, SessionId, and Hostname a | `GetImageAvgTime` | Average fsimage download time in milliseconds | | `PutImageNumOps` | Total number of fsimage uploads to SecondaryNameNode | | `PutImageAvgTime` | Average fsimage upload time in milliseconds | +| `NNStarted`| NameNode start time | +| `NNStartedTimeInMillis`| NameNode start time in milliseconds | FSNamesystem ------------ diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 73a93b27c1f..2b3f26409c3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -926,6 +926,9 @@ Release 2.8.0 - UNRELEASED HDFS-8950. NameNode refresh doesn't remove DataNodes that are no longer in the allowed list (Daniel Templeton) + HDFS-8388. Time and Date format need to be in sync in NameNode UI page. + (Surendra Singh Lilhore via aajisaka) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java index 433445b95fe..84bb82c3dd6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java @@ -6126,6 +6126,11 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean, return getStartTime().toString(); } + @Override // NameNodeMXBean + public long getNNStartedTimeInMillis() { + return startTime; + } + @Override // NameNodeMXBean public String getCompileInfo() { return VersionInfo.getDate() + " by " + VersionInfo.getUser() + diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeMXBean.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeMXBean.java index 0e4d44594d2..00c1abe711c 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeMXBean.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNodeMXBean.java @@ -238,6 +238,12 @@ public interface NameNodeMXBean { */ public String getNNStarted(); + /** + * Gets the NN start time in milliseconds. + * @return the NN start time in msec + */ + long getNNStartedTimeInMillis(); + /** * Get the compilation information which contains date, user and branch * diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html index 38808ca0305..36f8bfe9374 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.html @@ -130,9 +130,9 @@ Namenode ID:{NamenodeID} {/HAInfo} {#nn} - Started:{NNStarted} + Started:{NNStartedTimeInMillis|date_tostring} Version:{Version} - Compiled:{CompileInfo} + Compiled:{CompileInfo|format_compile_info} Cluster ID:{ClusterId} Block Pool ID:{BlockPoolId} {/nn} @@ -423,7 +423,6 @@ There are no reported volume failures. diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js index 5572880d184..46f48b8e10d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js @@ -146,7 +146,7 @@ var HELPERS = { '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()); + return chunk.write('' + moment(Number(value)).format('ddd MMM DD HH:mm:ss ZZ YYYY')); } }; var url = '/webhdfs/v1' + encode_path(dir) + '?op=LISTSTATUS'; diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/dfs-dust.js b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/dfs-dust.js index 3c8efd97a04..466e05873d2 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/dfs-dust.js +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/dfs-dust.js @@ -58,9 +58,15 @@ }, 'date_tostring' : function (v) { - return new Date(Number(v)).toLocaleString(); + return moment(Number(v)).format('ddd MMM DD HH:mm:ss ZZ YYYY'); }, + 'format_compile_info' : function (v) { + var info = v.split(" by ") + var date = moment(info[0]).format('ddd MMM DD HH:mm:ss ZZ YYYY'); + return date.concat(" by ").concat(info[1]); + }, + 'helper_to_permission': function (v) { var symbols = [ '---', '--x', '-w-', '-wx', 'r--', 'r-x', 'rw-', 'rwx' ]; var vInt = parseInt(v, 8);