HDFS-8164. cTime is 0 in VERSION file for newly formatted NameNode. Contributed by Xiao Chen.
(cherry picked from commit 1107bd399c
)
This commit is contained in:
parent
22ed1471bd
commit
aaf7b73fe4
|
@ -673,6 +673,9 @@ Release 2.8.0 - UNRELEASED
|
|||
|
||||
HDFS-9170. Move libhdfs / fuse-dfs / libwebhdfs to hdfs-client. (wheat9)
|
||||
|
||||
HDFS-8164. cTime is 0 in VERSION file for newly formatted NameNode.
|
||||
(Xiao Chen via Yongjun Zhang)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than
|
||||
|
|
|
@ -1505,6 +1505,18 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the creation time of the file system.
|
||||
* Notice that this time is initialized to NameNode format time, and updated
|
||||
* to upgrade time during upgrades.
|
||||
* @return time in milliseconds.
|
||||
* See {@link org.apache.hadoop.util.Time#now()}.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
long getCTime() {
|
||||
return fsImage == null ? 0 : fsImage.getStorage().getCTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Version of @see #getNamespaceInfo() that is not protected by a lock.
|
||||
*/
|
||||
|
|
|
@ -573,7 +573,7 @@ public class NNStorage extends Storage implements Closeable,
|
|||
public static NamespaceInfo newNamespaceInfo()
|
||||
throws UnknownHostException {
|
||||
return new NamespaceInfo(newNamespaceID(), newClusterID(),
|
||||
newBlockPoolID(), 0L);
|
||||
newBlockPoolID(), Time.now());
|
||||
}
|
||||
|
||||
public void format() throws IOException {
|
||||
|
|
|
@ -48,6 +48,7 @@ import org.apache.hadoop.hdfs.server.namenode.NNStorage.NameNodeDirType;
|
|||
import org.apache.hadoop.hdfs.util.MD5FileUtils;
|
||||
import org.apache.hadoop.test.GenericTestUtils;
|
||||
import org.apache.hadoop.test.PathUtils;
|
||||
import org.apache.hadoop.util.Time;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestFSImage {
|
||||
|
@ -233,6 +234,29 @@ public class TestFSImage {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure ctime is set during namenode formatting.
|
||||
*/
|
||||
@Test(timeout=60000)
|
||||
public void testCtime() throws Exception {
|
||||
Configuration conf = new Configuration();
|
||||
MiniDFSCluster cluster = null;
|
||||
try {
|
||||
final long pre = Time.now();
|
||||
cluster = new MiniDFSCluster.Builder(conf).numDataNodes(1).build();
|
||||
cluster.waitActive();
|
||||
final long post = Time.now();
|
||||
final long ctime = cluster.getNamesystem().getCTime();
|
||||
|
||||
assertTrue(pre <= ctime);
|
||||
assertTrue(ctime <= post);
|
||||
} finally {
|
||||
if (cluster != null) {
|
||||
cluster.shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* In this test case, I have created an image with a file having
|
||||
* preferredblockSize = 0. We are trying to read this image (since file with
|
||||
|
|
Loading…
Reference in New Issue