diff --git a/BUILDING.txt b/BUILDING.txt
index 78c611fb7d604..15f47ba8da70c 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -7,7 +7,7 @@ Requirements:
* JDK 1.8
* Maven 3.3 or later
* Boost 1.72 (if compiling native code)
-* Protocol Buffers 3.7.1 (if compiling native code)
+* Protocol Buffers 3.17.3 (if compiling native code)
* CMake 3.19 or newer (if compiling native code)
* Zlib devel (if compiling native code)
* Cyrus SASL devel (if compiling native code)
@@ -74,10 +74,10 @@ Refer to dev-support/docker/Dockerfile):
$ ./bootstrap
$ make -j$(nproc)
$ sudo make install
-* Protocol Buffers 3.7.1 (required to build native code)
- $ curl -L -s -S https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz -o protobuf-3.7.1.tar.gz
- $ mkdir protobuf-3.7-src
- $ tar xzf protobuf-3.7.1.tar.gz --strip-components 1 -C protobuf-3.7-src && cd protobuf-3.7-src
+* Protocol Buffers 3.17.3 (required to build native code)
+ $ curl -L -s -S https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-java-3.17.3.tar.gz -o protobuf-3.17.3.tar.gz
+ $ mkdir protobuf-3.17-src
+ $ tar xzf protobuf-3.17.3.tar.gz --strip-components 1 -C protobuf-3.17-src && cd protobuf-3.17-src
$ ./configure
$ make -j$(nproc)
$ sudo make install
@@ -408,10 +408,10 @@ Installing required dependencies for clean install of macOS 10.14:
* Install native libraries, only openssl is required to compile native code,
you may optionally install zlib, lz4, etc.
$ brew install openssl
-* Protocol Buffers 3.7.1 (required to compile native code)
- $ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz
- $ mkdir -p protobuf-3.7 && tar zxvf protobuf-java-3.7.1.tar.gz --strip-components 1 -C protobuf-3.7
- $ cd protobuf-3.7
+* Protocol Buffers 3.17.3 (required to compile native code)
+ $ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-java-3.17.3.tar.gz
+ $ mkdir -p protobuf-3.17 && tar zxvf protobuf-java-3.17.3.tar.gz --strip-components 1 -C protobuf-3.17
+ $ cd protobuf-3.17
$ ./configure
$ make
$ make check
@@ -447,10 +447,10 @@ Building on CentOS 8
* Install python2 for building documentation.
$ sudo dnf install python2
-* Install Protocol Buffers v3.7.1.
+* Install Protocol Buffers v3.17.3.
$ git clone https://github.com/protocolbuffers/protobuf
$ cd protobuf
- $ git checkout v3.7.1
+ $ git checkout v3.17.3
$ autoreconf -i
$ ./configure --prefix=/usr/local
$ make
@@ -506,7 +506,7 @@ Requirements:
* JDK 1.8
* Maven 3.0 or later
* Boost 1.72
-* Protocol Buffers 3.7.1
+* Protocol Buffers 3.17.3
* CMake 3.19 or newer
* Visual Studio 2010 Professional or Higher
* Windows SDK 8.1 (if building CPU rate control for the container executor)
diff --git a/LICENSE-binary b/LICENSE-binary
index 204c523329a21..8b04391f0b079 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -381,7 +381,7 @@ hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/static/d3-3.5.17.min.js
leveldb v1.13
com.google.protobuf:protobuf-java:2.5.0
-com.google.protobuf:protobuf-java:3.6.1
+com.google.protobuf:protobuf-java:3.17.3
com.google.re2j:re2j:1.1
com.jcraft:jsch:0.1.54
com.thoughtworks.paranamer:paranamer:2.3
diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile
index fac364bbd4363..c4a179ac608ce 100644
--- a/dev-support/docker/Dockerfile
+++ b/dev-support/docker/Dockerfile
@@ -66,7 +66,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64
ENV SPOTBUGS_HOME /opt/spotbugs
#######
-# Set env vars for Google Protobuf 3.7.1
+# Set env vars for Google Protobuf 3.17.3
#######
ENV PROTOBUF_HOME /opt/protobuf
ENV PATH "${PATH}:/opt/protobuf/bin"
diff --git a/dev-support/docker/Dockerfile_aarch64 b/dev-support/docker/Dockerfile_aarch64
index dd0348961f464..de5b5cd7c9cce 100644
--- a/dev-support/docker/Dockerfile_aarch64
+++ b/dev-support/docker/Dockerfile_aarch64
@@ -66,7 +66,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-arm64
ENV SPOTBUGS_HOME /opt/spotbugs
#######
-# Set env vars for Google Protobuf 3.7.1
+# Set env vars for Google Protobuf 3.17.3
#######
ENV PROTOBUF_HOME /opt/protobuf
ENV PATH "${PATH}:/opt/protobuf/bin"
diff --git a/dev-support/docker/Dockerfile_debian_10 b/dev-support/docker/Dockerfile_debian_10
index 9601c3f35522a..90e09a0a87479 100644
--- a/dev-support/docker/Dockerfile_debian_10
+++ b/dev-support/docker/Dockerfile_debian_10
@@ -69,7 +69,7 @@ ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64
ENV SPOTBUGS_HOME /opt/spotbugs
#######
-# Set env vars for Google Protobuf 3.7.1
+# Set env vars for Google Protobuf 3.17.3
#######
ENV PROTOBUF_HOME /opt/protobuf
ENV PATH "${PATH}:/opt/protobuf/bin"
diff --git a/dev-support/docker/pkg-resolver/install-protobuf.sh b/dev-support/docker/pkg-resolver/install-protobuf.sh
index 7303b4048226a..f2b5ed573169c 100644
--- a/dev-support/docker/pkg-resolver/install-protobuf.sh
+++ b/dev-support/docker/pkg-resolver/install-protobuf.sh
@@ -27,22 +27,22 @@ if [ $? -eq 1 ]; then
exit 1
fi
-default_version="3.7.1"
+default_version="3.17.3"
version_to_install=$default_version
if [ -n "$2" ]; then
version_to_install="$2"
fi
-if [ "$version_to_install" != "3.7.1" ]; then
+if [ "$version_to_install" != "3.17.3" ]; then
echo "WARN: Don't know how to install version $version_to_install, installing the default version $default_version instead"
version_to_install=$default_version
fi
-if [ "$version_to_install" == "3.7.1" ]; then
+if [ "$version_to_install" == "3.17.3" ]; then
# hadolint ignore=DL3003
mkdir -p /opt/protobuf-src &&
curl -L -s -S \
- https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-java-3.7.1.tar.gz \
+ https://github.com/protocolbuffers/protobuf/releases/download/v3.17.3/protobuf-java-3.17.3.tar.gz \
-o /opt/protobuf.tar.gz &&
tar xzf /opt/protobuf.tar.gz --strip-components 1 -C /opt/protobuf-src &&
cd /opt/protobuf-src &&
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index 1435eae2d23f6..0bfae06ed72b4 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -87,7 +87,7 @@
2.5.0
- 3.7.1
+ 3.17.3
${env.HADOOP_PROTOC_PATH}
1.1.1