From e46cb800028c95f9bce575d05268cd10d0913222 Mon Sep 17 00:00:00 2001 From: cnauroth Date: Sat, 6 Jun 2015 09:17:03 -0700 Subject: [PATCH] HADOOP-12055. Deprecate usage of NativeIO#link. Contributed by Andrew Wang. --- hadoop-common-project/hadoop-common/CHANGES.txt | 2 ++ .../java/org/apache/hadoop/io/nativeio/NativeIO.java | 11 +++++++++++ .../hadoop/hdfs/server/datanode/DataStorage.java | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 4b1d0d151cc..eacc3bed96f 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -640,6 +640,8 @@ Release 2.8.0 - UNRELEASED HADOOP-12056. Use DirectoryStream in DiskChecker#checkDirs to detect errors when listing a directory. (Zhihai Xu via wang) + HADOOP-12055. Deprecate usage of NativeIO#link. (Andrew Wang via cnauroth) + OPTIMIZATIONS HADOOP-11785. Reduce the number of listStatus operation in distcp diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java index bc6e62ae402..688b955f6d8 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/nativeio/NativeIO.java @@ -881,6 +881,17 @@ public static void renameTo(File src, File dst) } } + /** + * Creates a hardlink "dst" that points to "src". + * + * This is deprecated since JDK7 NIO can create hardlinks via the + * {@link java.nio.file.Files} API. + * + * @param src source file + * @param dst hardlink location + * @throws IOException + */ + @Deprecated public static void link(File src, File dst) throws IOException { if (!nativeLoaded) { HardLink.createHardLink(src, dst); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataStorage.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataStorage.java index 089e0329caa..0bd08ddec6f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataStorage.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataStorage.java @@ -1044,7 +1044,7 @@ public Void call() throws IOException { idBasedLayoutSingleLinks.size()); for (int j = iCopy; j < upperBound; j++) { LinkArgs cur = idBasedLayoutSingleLinks.get(j); - NativeIO.link(cur.src, cur.dst); + HardLink.createHardLink(cur.src, cur.dst); } return null; }