From d90f7412f2162550d3cc9a3ae33f330e7114bc5c Mon Sep 17 00:00:00 2001 From: Haohui Mai Date: Fri, 30 Dec 2016 22:17:49 -0800 Subject: [PATCH] HDFS-11280. Allow WebHDFS to reuse HTTP connections to NN. Contributed by Zheng Shao. --- .../org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java index ccfed0b9f97..a5997050674 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java @@ -545,7 +545,9 @@ public class WebHdfsFileSystem extends FileSystem url = new URL(conn.getHeaderField("Location")); redirectHost = url.getHost() + ":" + url.getPort(); } finally { - conn.disconnect(); + // Don't call conn.disconnect() to allow connection reuse + // See http://tinyurl.com/java7-http-keepalive + conn.getInputStream().close(); } } try { @@ -774,7 +776,9 @@ public class WebHdfsFileSystem extends FileSystem } throw ioe; } finally { - conn.disconnect(); + // Don't call conn.disconnect() to allow connection reuse + // See http://tinyurl.com/java7-http-keepalive + conn.getInputStream().close(); } } @@ -820,6 +824,9 @@ public class WebHdfsFileSystem extends FileSystem try { validateResponse(op, conn, true); } finally { + // This is a connection to DataNode. Let's disconnect since + // there is little chance that the connection will be reused + // any time soonl conn.disconnect(); } }