diff --git a/docs/dev/UpgradeGuava.md b/docs/dev/UpgradeGuava.md
deleted file mode 100644
index 0efd347..0000000
--- a/docs/dev/UpgradeGuava.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# How to upgrade Guava in Drill
-
-To avoid conflicts with the version of Guava used by Drill and versions used by other dependencies, Guava was shaded.
-
-## Update shaded version of guava
-
-* Set the new version of Guava to `guava.version` property and to the version of the artifact in 
-`drill-shaded/drill-shaded-guava/pom.xml` file.
-* Set the same new version of Guava to `shaded.guava.version` property in the root `pom.xml` file.
-* Build `drill-shaded-guava` module.
-* Try to build Drill and resolve compile errors if required.
-* When all errors are resolved and all tests are passed, push shaded artifacts to the Apache repository.
-* After artifacts became available, changes may be merged.
-
-# How to publish artifacts to the Apache repository
-
-## Prerequisites
-
-Only PMC members have an access for pushing artifacts to the Apache repository.
-
-Setup your development env according to [this instruction](http://www.apache.org/dev/publishing-maven-artifacts.html#dev-env).
-
-Set passphrase variable without putting it into shell history:
-
-`read -s GPG_PASSPHRASE`
-
-## Deploy artifacts with signatures to the staging repository
-
-Change directory to `drill/drill-shaded/drill-shaded-guava`.
-
-* For the case when `maven-gpg-plugin` plugin wasn’t added to the `pom.xml`, run
-
-`mvn clean verify gpg:sign install:install deploy:deploy -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -Dgpg.keyname=${GPG_KEY_ID}"`
-
-* For the case of configured `maven-gpg-plugin` plugin, run
-
-`mvn deploy -Darguments="-Dgpg.passphrase=${GPG_PASSPHRASE} -Dgpg.keyname=${GPG_KEY_ID}"`
-
-## Visit [repository.apache.org](https://repository.apache.org/#stagingRepositories)
-
-* Log in using your Apache credentials
-* Select uploaded staging repository
-* Check that all required `jar` and `pom` files are uploaded
-* Verify that every `jar` and `pom` file has a corresponding signature file (*.asc)
-
-If something went wrong, press `Drop` to remove the staging repository.
-
-## Close staging repository
-
-Select uploaded staging repository and press `Close` button.
-
-Verify that all checks are passed and staging repository was closed. Otherwise, drop staging repository and fix errors.
-
-## Publish artifacts to the Apache repository
-
-Select uploaded staging repository and press `Release` button.
-
-## Check artifacts were deployed
-
-Find deployed artifacts at [repository.apache.org](https://repository.apache.org/content/groups/public/org/apache/drill/)
-
-Artifacts will become available within 24 hours.
diff --git a/drill-shaded/pom.xml b/drill-shaded/pom.xml
deleted file mode 100644
index 5982df7..0000000
--- a/drill-shaded/pom.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>21</version>
-    <relativePath/>
-  </parent>
-
-  <groupId>org.apache.drill</groupId>
-  <artifactId>drill-shaded</artifactId>
-  <version>1.0</version>
-
-  <name>Drill : Shaded</name>
-  <packaging>pom</packaging>
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-shade-plugin</artifactId>
-          <executions>
-            <execution>
-              <phase>package</phase>
-              <goals>
-                <goal>shade</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <createSourcesJar>true</createSourcesJar>
-            <shadeSourcesContent>true</shadeSourcesContent>
-            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
-            <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
-            <transformers>
-              <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
-              <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
-                <addHeader>false</addHeader>
-              </transformer>
-            </transformers>
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-  </build>
-
-  <modules>
-    <!-- None since Drill's shaded Guava was removed, see DRILL-8420. -->
-  </modules>
-
-</project>
diff --git a/exec/jdbc-all/pom.xml b/exec/jdbc-all/pom.xml
index e3d5815..c61437c 100644
--- a/exec/jdbc-all/pom.xml
+++ b/exec/jdbc-all/pom.xml
@@ -745,16 +745,6 @@
                 <exclude>org/apache/drill/exec/store/**</exclude>
                 <exclude>org/apache/drill/exec/work/**</exclude>
                 <exclude>org/apache/drill/metastore/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Standard*</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Tree*</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/escape/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/eventbus/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/html/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/io/BaseEncoding*</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/net/**</exclude>
-                <exclude>org/apache/drill/shaded/guava/com/google/common/xml/**</exclude>
                 <exclude>org/apache/hadoop/crypto/**</exclude>
                 <exclude>org/apache/hadoop/ha/**</exclude>
                 <exclude>org/apache/hadoop/http/**</exclude>
