diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index dc64a2691e0..b7be5793940 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -107,6 +107,8 @@ Release 2.5.0 - UNRELEASED
HDFS-5409. TestOfflineEditsViewer#testStored fails on Windows due to CRLF
line endings in editsStored.xml from git checkout. (cnauroth)
+ HDFS-4909. Avoid protocol buffer RPC namespace clashes. (cmccabe)
+
Release 2.4.1 - UNRELEASED
INCOMPATIBLE CHANGES
diff --git a/hadoop-hdfs-project/hadoop-hdfs/pom.xml b/hadoop-hdfs-project/hadoop-hdfs/pom.xml
index acb117da81e..362b39f44b2 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/pom.xml
+++ b/hadoop-hdfs-project/hadoop-hdfs/pom.xml
@@ -425,81 +425,18 @@ http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-
-
-
- compile-protoc-datanode
- generate-sources
-
- protoc
-
-
- ${protobuf.version}
- ${protoc.path}
-
- ${basedir}/../../hadoop-common-project/hadoop-common/src/main/proto
- ${basedir}/src/main/proto
-
-
-
-
-
-
- compile-protoc-namenode
- generate-sources
-
- protoc
-
-
- ${protobuf.version}
- ${protoc.path}
-
- ${basedir}/../../hadoop-common-project/hadoop-common/src/main/proto
- ${basedir}/src/main/proto
-
-
-
-
-
-
- compile-protoc-qjournal
- generate-sources
-
- protoc
-
-
- ${protobuf.version}
- ${protoc.path}
-
- ${basedir}/../../hadoop-common-project/hadoop-common/src/main/proto
- ${basedir}/src/main/proto
-
-
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/DatanodeProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/DatanodeProtocol.proto
index 9bb2c94cf3e..03a73d79fb0 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/DatanodeProtocol.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/DatanodeProtocol.proto
@@ -29,7 +29,7 @@ option java_package = "org.apache.hadoop.hdfs.protocol.proto";
option java_outer_classname = "DatanodeProtocolProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
-package hadoop.hdfs;
+package hadoop.hdfs.datanode;
import "hdfs.proto";
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/NamenodeProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/NamenodeProtocol.proto
index 7c6084d1e8a..4bcbeed9b56 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/NamenodeProtocol.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/NamenodeProtocol.proto
@@ -29,7 +29,7 @@ option java_package = "org.apache.hadoop.hdfs.protocol.proto";
option java_outer_classname = "NamenodeProtocolProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
-package hadoop.hdfs;
+package hadoop.hdfs.namenode;
import "hdfs.proto";
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/QJournalProtocol.proto b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/QJournalProtocol.proto
index e4903ba4955..aaea12e03ac 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/QJournalProtocol.proto
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/proto/QJournalProtocol.proto
@@ -26,7 +26,7 @@ option java_package = "org.apache.hadoop.hdfs.qjournal.protocol";
option java_outer_classname = "QJournalProtocolProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
-package hadoop.hdfs;
+package hadoop.hdfs.qjournal;
import "hdfs.proto";