diff --git a/common/src/main/java/org/apache/drill/common/config/DrillProperties.java b/common/src/main/java/org/apache/drill/common/config/DrillProperties.java
index 2ba886d..15e1085 100644
--- a/common/src/main/java/org/apache/drill/common/config/DrillProperties.java
+++ b/common/src/main/java/org/apache/drill/common/config/DrillProperties.java
@@ -85,8 +85,6 @@
   public static final String TLS_HANDSHAKE_TIMEOUT = "TLSHandshakeTimeout";
   public static final String TLS_PROVIDER = "TLSProvider";
   public static final String USE_SYSTEM_TRUSTSTORE = "useSystemTrustStore";
-  public static final String USE_MAPR_SSL_CONFIG = "useMapRSSLConfig";
-
   public static final String QUERY_TAGS = "queryTags";
 
   // Although all properties from the application are sent to the server (from the client), the following
diff --git a/contrib/pom.xml b/contrib/pom.xml
index b4ee532..59747eb 100644
--- a/contrib/pom.xml
+++ b/contrib/pom.xml
@@ -39,40 +39,40 @@
   </dependencies>
 
   <modules>
+    <!-- Please keep this list sorted. -->
     <module>data</module>
-    <module>udfs</module>
-    <module>storage-hbase</module>
-    <module>format-maprdb</module>
-    <module>format-syslog</module>
-    <module>format-ltsv</module>
-    <module>format-excel</module>
-    <module>format-httpd</module>
-    <module>format-esri</module>
-    <module>format-log</module>
     <module>format-access</module>
-    <module>format-pdf</module>
+    <module>format-deltalake</module>
+    <module>format-esri</module>
+    <module>format-excel</module>
     <module>format-hdf5</module>
+    <module>format-httpd</module>
+    <module>format-iceberg</module>
+    <module>format-image</module>
+    <module>format-log</module>
+    <module>format-ltsv</module>
+    <module>format-pcapng</module>
+    <module>format-pdf</module>
     <module>format-sas</module>
     <module>format-spss</module>
+    <module>format-syslog</module>
     <module>format-xml</module>
-    <module>format-image</module>
-    <module>format-pcapng</module>
-    <module>format-iceberg</module>
-    <module>format-deltalake</module>
+    <module>storage-cassandra</module>
     <module>storage-drill</module>
-    <module>storage-phoenix</module>
+    <module>storage-druid</module>
+    <module>storage-elasticsearch</module>
     <module>storage-googlesheets</module>
+    <module>storage-hbase</module>
     <module>storage-hive</module>
-    <module>storage-mongo</module>
+    <module>storage-http</module>
     <module>storage-jdbc</module>
     <module>storage-kafka</module>
     <module>storage-kudu</module>
+    <module>storage-mongo</module>
     <module>storage-opentsdb</module>
+    <module>storage-phoenix</module>
     <module>storage-splunk</module>
-    <module>storage-http</module>
-    <module>storage-druid</module>
-    <module>storage-elasticsearch</module>
-    <module>storage-cassandra</module>
+    <module>udfs</module>
   </modules>
 
 </project>
diff --git a/contrib/storage-hbase/pom.xml b/contrib/storage-hbase/pom.xml
index c1edbb1..c2cbc42 100644
--- a/contrib/storage-hbase/pom.xml
+++ b/contrib/storage-hbase/pom.xml
@@ -258,60 +258,5 @@
         </dependency>
       </dependencies>
     </profile>
-
-    <profile>
-      <id>mapr</id>
-      <properties>
-        <alt-hadoop>mapr</alt-hadoop>
-      </properties>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-client</artifactId>
-          <exclusions>
-            <exclusion>
-              <groupId>log4j</groupId>
-              <artifactId>log4j</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>commons-logging</groupId>
-              <artifactId>commons-logging</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.codehaus.jackson</groupId>
-              <artifactId>jackson-mapper-asl</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-testing-util</artifactId>
-          <scope>test</scope>
-          <classifier>tests</classifier>
-          <exclusions>
-            <exclusion>
-              <artifactId>log4j</artifactId>
-              <groupId>log4j</groupId>
-            </exclusion>
-            <exclusion>
-              <groupId>commons-httpclient</groupId>
-              <artifactId>commons-httpclient</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.codehaus.jackson</groupId>
-              <artifactId>jackson-jaxrs</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.codehaus.jackson</groupId>
-              <artifactId>jackson-xc</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>com.tdunning</groupId>
-          <artifactId>json</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
   </profiles>
 </project>
diff --git a/contrib/storage-hive/core/pom.xml b/contrib/storage-hive/core/pom.xml
index 57f17d8..89ec525 100644
--- a/contrib/storage-hive/core/pom.xml
+++ b/contrib/storage-hive/core/pom.xml
@@ -321,54 +321,4 @@
       </plugin>
     </plugins>
   </build>
-  <profiles>
-    <profile>
-      <id>mapr</id>
-      <properties>
-        <freemarker.conf.file>src/main/codegen/config.fmpp</freemarker.conf.file>
-      </properties>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>add-mapr-sources</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>scrMapr/main/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.drill.contrib</groupId>
-          <artifactId>drill-format-mapr</artifactId>
-          <version>${project.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>com.tdunning</groupId>
-          <artifactId>json</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hive</groupId>
-          <artifactId>hive-maprdb-json-handler</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>com.mapr.db</groupId>
-          <artifactId>maprdb-mapreduce</artifactId>
-          <scope>runtime</scope>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
 </project>
diff --git a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveStoragePlugin.java b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveStoragePlugin.java
index 2bd5856..997d0e3 100644
--- a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveStoragePlugin.java
+++ b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveStoragePlugin.java
@@ -36,8 +36,6 @@
 import org.apache.drill.common.exceptions.DrillRuntimeException;
 import org.apache.drill.common.exceptions.ExecutionSetupException;
 import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.logical.FormatPluginConfig;
-import org.apache.drill.common.logical.StoragePluginConfig;
 import org.apache.drill.exec.ExecConstants;
 import org.apache.drill.exec.ops.OptimizerRulesContext;
 import org.apache.drill.exec.physical.base.AbstractGroupScan;
@@ -50,11 +48,9 @@
 import org.apache.drill.exec.store.AbstractStoragePlugin;
 import org.apache.drill.exec.store.SchemaConfig;
 import org.apache.drill.exec.store.StoragePluginOptimizerRule;
-import org.apache.drill.exec.store.dfs.FormatPlugin;
 import org.apache.drill.exec.store.hive.schema.HiveSchemaFactory;
 import com.google.common.collect.ImmutableSet;
 
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
 import org.apache.hadoop.hive.metastore.api.MetaException;
@@ -64,8 +60,6 @@
 
   private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(HiveStoragePlugin.class);
 
-  public static final String HIVE_MAPRDB_FORMAT_PLUGIN_NAME = "hive-maprdb";
-
   private final HiveStoragePluginConfig config;
   private HiveSchemaFactory schemaFactory;
   private final HiveConf hiveConf;
@@ -206,44 +200,10 @@
             options.getBoolean(ExecConstants.HIVE_OPTIMIZE_PARQUET_SCAN_WITH_NATIVE_READER)) {
           ruleBuilder.add(ConvertHiveParquetScanToDrillParquetScan.INSTANCE);
         }
-        if (options.getBoolean(ExecConstants.HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER)) {
-          try {
-            Class<?> hiveToDrillMapRDBJsonRuleClass =
-                Class.forName("org.apache.drill.exec.planner.sql.logical.ConvertHiveMapRDBJsonScanToDrillMapRDBJsonScan");
-            ruleBuilder.add((StoragePluginOptimizerRule) hiveToDrillMapRDBJsonRuleClass.getField("INSTANCE").get(null));
-          } catch (ReflectiveOperationException e) {
-            logger.warn("Current Drill build is not designed for working with Hive MapR-DB tables. " +
-                "Please disable {} option", ExecConstants.HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER);
-          }
-        }
         return ruleBuilder.build();
       }
       default:
         return ImmutableSet.of();
     }
   }
-
-  @Override
-  public FormatPlugin getFormatPlugin(FormatPluginConfig formatConfig) {
-    //  TODO: implement formatCreator similar to FileSystemPlugin formatCreator. DRILL-6621
-    try {
-      Class<?> mapRDBFormatPluginConfigClass =
-          Class.forName("org.apache.drill.exec.store.mapr.db.MapRDBFormatPluginConfig");
-      Class<?> mapRDBFormatPluginClass =
-          Class.forName("org.apache.drill.exec.store.mapr.db.MapRDBFormatPlugin");
-
-      if (mapRDBFormatPluginConfigClass.isInstance(formatConfig)) {
-        return (FormatPlugin) mapRDBFormatPluginClass.getConstructor(
-              new Class[]{String.class, DrillbitContext.class, Configuration.class,
-                  StoragePluginConfig.class, mapRDBFormatPluginConfigClass})
-          .newInstance(
-              new Object[]{HIVE_MAPRDB_FORMAT_PLUGIN_NAME, context, hiveConf, config, formatConfig});
-      }
-    } catch (ReflectiveOperationException e) {
-      throw new DrillRuntimeException("The error is occurred while connecting to MapR-DB or instantiating mapRDBFormatPlugin", e);
-    }
-    throw new DrillRuntimeException(String.format("Hive storage plugin doesn't support usage of %s format plugin",
-        formatConfig.getClass().getName()));
-  }
-
 }
diff --git a/distribution/pom.xml b/distribution/pom.xml
index dfb9d28..c5c1d67 100644
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -453,17 +453,6 @@
           <artifactId>drill-format-esri</artifactId>
           <version>${project.version}</version>
         </dependency>
-        <!--
-         drill-format-mapr is intentionally excluded from distribution for the default profile
-         to avoid adding mapr-specific jars into jars/3rdparty folder and inflation of the target jar.
-         For more details please see DRILL-7213 and DRILL-6929.
-
-         <dependency>
-           <groupId>org.apache.drill.contrib</groupId>
-           <artifactId>drill-format-mapr</artifactId>
-           <version>${project.version}</version>
-         </dependency>
-         -->
         <dependency>
           <groupId>org.apache.drill.contrib</groupId>
           <artifactId>drill-format-excel</artifactId>
@@ -499,6 +488,7 @@
           <artifactId>drill-storage</artifactId>
           <version>${project.version}</version>
         </dependency>
+
       </dependencies>
     </profile>
 
@@ -536,90 +526,6 @@
       </build>
     </profile>
     <profile>
-      <id>mapr</id>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.drill.contrib</groupId>
-          <artifactId>drill-format-mapr</artifactId>
-          <version>${project.version}</version>
-          <exclusions>
-            <exclusion>
-              <groupId>com.mapr</groupId>
-              <artifactId>mapr-test-annotations</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-client</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-annotations</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-common</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hbase</groupId>
-          <artifactId>hbase-protocol</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hive</groupId>
-          <artifactId>hive-maprdb-json-handler</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>com.mapr.db</groupId>
-          <artifactId>maprdb-mapreduce</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>com.mapr.security</groupId>
-          <artifactId>mapr-security-web</artifactId>
-        </dependency>
-      </dependencies>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-resources-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>copy-winutils</id>
-                <phase>none</phase>
-              </execution>
-            </executions>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-dependency-plugin</artifactId>
-            <version>3.6.0</version>
-            <executions>
-              <execution>
-                <id>unpack-winutils</id>
-                <goals>
-                  <goal>unpack</goal>
-                </goals>
-                <phase>process-resources</phase>
-                <configuration>
-                  <artifactItems>
-                    <artifactItem>
-                      <groupId>org.apache.hadoop</groupId>
-                      <artifactId>hadoop-winutils</artifactId>
-                      <version>2.7.0-mapr-1506</version>
-                      <type>zip</type>
-                      <overWrite>true</overWrite>
-                      <outputDirectory>${project.build.directory}/winutils</outputDirectory>
-                      <excludes>**/*.pdb,**/*.lib,**/*.exp</excludes>
-                    </artifactItem>
-                  </artifactItems>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
       <id>rpm</id>
       <build>
         <plugins>
@@ -868,6 +774,7 @@
         </plugins>
       </build>
     </profile>
+
   </profiles>
 
 </project>
diff --git a/distribution/src/assemble/component.xml b/distribution/src/assemble/component.xml
index 7cf3066..48a6360 100644
--- a/distribution/src/assemble/component.xml
+++ b/distribution/src/assemble/component.xml
@@ -25,53 +25,53 @@
     <dependencySet>
       <!-- Now, select which projects to include in this module-set. -->
       <includes>
-        <include>org.apache.drill.exec:drill-jdbc:jar</include>
-        <include>org.apache.drill:drill-protocol:jar</include>
-        <include>org.apache.drill:drill-common:jar</include>
-        <include>org.apache.drill:drill-logical:jar</include>
-        <include>org.apache.drill.exec:vector:jar</include>
-        <include>org.apache.drill.memory:drill-memory-base:jar</include>
-        <include>org.apache.drill.exec:drill-rpc:jar</include>
-        <include>org.apache.drill.exec:drill-java-exec:jar</include>
-        <include>org.apache.drill.metastore:drill-metastore-api:jar</include>
-        <include>org.apache.drill.metastore:drill-iceberg-metastore:jar</include>
-        <include>org.apache.drill.metastore:drill-rdbms-metastore:jar</include>
-        <include>org.apache.drill.metastore:drill-mongo-metastore:jar</include>
-        <include>org.apache.drill.contrib.storage-hive:drill-storage-hive-core:jar</include>
-        <include>org.apache.drill.contrib.storage-hive:drill-hive-exec-shaded:jar</include>
+        <!-- Please keep this list sorted. -->
         <include>org.apache.drill.contrib.data:tpch-sample-data:jar</include>
-        <include>org.apache.drill.contrib:drill-mongo-storage:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-hbase:jar</include>
-        <include>org.apache.drill.contrib:drill-format-mapr:jar</include>
-        <include>org.apache.drill.contrib:drill-format-syslog:jar</include>
+        <include>org.apache.drill.contrib:drill-deltalake-format:jar</include>
+        <include>org.apache.drill.contrib:drill-druid-storage:jar</include>
         <include>org.apache.drill.contrib:drill-format-esri:jar</include>
-        <include>org.apache.drill.contrib:drill-format-xml:jar</include>
-        <include>org.apache.drill.contrib:drill-format-image:jar</include>
-        <include>org.apache.drill.contrib:drill-format-pcapng:jar</include>
+        <include>org.apache.drill.contrib:drill-format-excel:jar</include>
         <include>org.apache.drill.contrib:drill-format-hdf5:jar</include>
+        <include>org.apache.drill.contrib:drill-format-httpd:jar</include>
+        <include>org.apache.drill.contrib:drill-format-image:jar</include>
         <include>org.apache.drill.contrib:drill-format-log:jar</include>
         <include>org.apache.drill.contrib:drill-format-ltsv:jar</include>
-        <include>org.apache.drill.contrib:drill-format-httpd:jar</include>
-        <include>org.apache.drill.contrib:drill-format-pdf:jar</include>
-        <include>org.apache.drill.contrib:drill-format-excel:jar</include>
         <include>org.apache.drill.contrib:drill-format-msaccess:jar</include>
-        <include>org.apache.drill.contrib:drill-format-spss:jar</include>
+        <include>org.apache.drill.contrib:drill-format-pcapng:jar</include>
+        <include>org.apache.drill.contrib:drill-format-pdf:jar</include>
         <include>org.apache.drill.contrib:drill-format-sas:jar</include>
+        <include>org.apache.drill.contrib:drill-format-spss:jar</include>
+        <include>org.apache.drill.contrib:drill-format-syslog:jar</include>
+        <include>org.apache.drill.contrib:drill-format-xml:jar</include>
+        <include>org.apache.drill.contrib:drill-iceberg-format:jar</include>
         <include>org.apache.drill.contrib:drill-jdbc-storage:jar</include>
         <include>org.apache.drill.contrib:drill-kudu-storage:jar</include>
+        <include>org.apache.drill.contrib:drill-mongo-storage:jar</include>
+        <include>org.apache.drill.contrib:drill-opentsdb-storage:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-cassandra:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-elasticsearch:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-googlesheets:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-hbase:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-http:jar</include>
+        <include>org.apache.drill.contrib:drill-storage:jar</include>
+        <include>org.apache.drill.contrib:drill-storage-kafka:jar</include>
         <include>org.apache.drill.contrib:drill-storage-phoenix:jar</include>
         <include>org.apache.drill.contrib:drill-storage-splunk:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-googlesheets:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-kafka:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-elasticsearch:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-cassandra:jar</include>
-        <include>org.apache.drill.contrib:drill-storage-http:jar</include>
-        <include>org.apache.drill.contrib:drill-opentsdb-storage:jar</include>
         <include>org.apache.drill.contrib:drill-udfs:jar</include>
-        <include>org.apache.drill.contrib:drill-druid-storage:jar</include>
-        <include>org.apache.drill.contrib:drill-iceberg-format:jar</include>
-        <include>org.apache.drill.contrib:drill-deltalake-format:jar</include>
-        <include>org.apache.drill.contrib:drill-storage:jar</include>
+        <include>org.apache.drill.contrib.storage-hive:drill-hive-exec-shaded:jar</include>
+        <include>org.apache.drill.contrib.storage-hive:drill-storage-hive-core:jar</include>
+        <include>org.apache.drill:drill-common:jar</include>
+        <include>org.apache.drill:drill-logical:jar</include>
+        <include>org.apache.drill:drill-protocol:jar</include>
+        <include>org.apache.drill.exec:drill-java-exec:jar</include>
+        <include>org.apache.drill.exec:drill-jdbc:jar</include>
+        <include>org.apache.drill.exec:drill-rpc:jar</include>
+        <include>org.apache.drill.exec:vector:jar</include>
+        <include>org.apache.drill.memory:drill-memory-base:jar</include>
+        <include>org.apache.drill.metastore:drill-iceberg-metastore:jar</include>
+        <include>org.apache.drill.metastore:drill-metastore-api:jar</include>
+        <include>org.apache.drill.metastore:drill-mongo-metastore:jar</include>
+        <include>org.apache.drill.metastore:drill-rdbms-metastore:jar</include>
       </includes>
       <outputDirectory>jars</outputDirectory>
       <useProjectArtifact>false</useProjectArtifact>
@@ -101,25 +101,26 @@
       <unpack>false</unpack>
       <useProjectArtifact>false</useProjectArtifact>
       <includes>
-        <include>org.glassfish.jersey.containers</include>
-        <include>org.glassfish.jersey.core</include>
-        <include>org.reflections</include>
-        <include>org.glassfish.hk2.external</include>
-        <include>org.eclipse.jetty</include>
+        <!-- Please keep this list sorted. -->
+        <include>ch.qos.logback</include>
+        <include>ch.qos.logback</include>
+        <include>com.sun.codemodel</include>
         <include>javax.activation</include>
         <include>javax.annotation</include>
+        <include>javax.servlet</include>
+        <include>javax.ws.rs</include>
+        <include>javax.xml.bind</include>
+        <include>org.eclipse.jetty</include>
+        <include>org.glassfish.hk2.external</include>
+        <include>org.glassfish.hk2</include>
         <include>org.glassfish.jersey.containers</include>
+        <include>org.glassfish.jersey.containers</include>
+        <include>org.glassfish.jersey.core</include>
         <include>org.glassfish.jersey.core</include>
         <include>org.glassfish.jersey.ext</include>
         <include>org.glassfish.jersey.media</include>
-        <include>org.glassfish.hk2</include>
-        <include>javax.servlet</include>
-        <include>javax.ws.rs</include>
         <include>org.jvnet.mimepull</include>
-        <include>com.sun.codemodel</include>
-        <include>javax.xml.bind</include>
-        <include>ch.qos.logback</include>
-        <include>ch.qos.logback</include>
+        <include>org.reflections</include>
       </includes>
       <scope>test</scope>
     </dependencySet>
@@ -128,40 +129,39 @@
       <unpack>false</unpack>
       <useProjectArtifact>false</useProjectArtifact>
       <excludes>
-        <exclude>org.apache.zookeeper</exclude>
-        <exclude>org.apache.drill</exclude>
-        <exclude>org.apache.drill.exec</exclude>
-        <exclude>org.apache.drill.contrib</exclude>
-        <exclude>org.apache.drill.contrib.data</exclude>
-        <exclude>org.apache.drill.contrib.storage-hive</exclude>
-        <exclude>org.apache.drill.memory</exclude>
-        <exclude>org.apache.drill.metastore</exclude>
-        <exclude>org.junit.jupiter:*:jar</exclude>
-        <exclude>org.junit.platform:*:jar</exclude>
-        <exclude>org.junit.vintage:*:jar</exclude>
-        <!-- Below Hive jars are already included in drill-hive-exec-shaded.jar -->
-        <exclude>junit:junit:jar</exclude>
-        <!-- exclude or sqlline has problems -->
-        <exclude>org.glassfish.jersey.containers</exclude>
-        <exclude>org.glassfish.jersey.core</exclude>
-        <exclude>org.reflections</exclude>
-        <exclude>org.glassfish.hk2.external</exclude>
-        <exclude>org.eclipse.jetty</exclude>
+        <!-- Please keep this list sorted. -->
+        <exclude>ch.qos.logback </exclude>
+        <exclude>ch.qos.logback</exclude>
+        <exclude>com.sun.codemodel</exclude>
+        <exclude>io.netty:netty-tcnative</exclude>
         <exclude>javax.activation</exclude>
         <exclude>javax.annotation</exclude>
+        <exclude>javax.servlet</exclude>
+        <exclude>javax.ws.rs </exclude>
+        <exclude>javax.xml.bind</exclude>
+        <exclude>junit:junit:jar</exclude>
+        <exclude>org.apache.drill.contrib.data</exclude>
+        <exclude>org.apache.drill.contrib</exclude>
+        <exclude>org.apache.drill.contrib.storage-hive</exclude>
+        <exclude>org.apache.drill</exclude>
+        <exclude>org.apache.drill.exec</exclude>
+        <exclude>org.apache.drill.memory</exclude>
+        <exclude>org.apache.drill.metastore</exclude>
+        <exclude>org.apache.zookeeper</exclude>
+        <exclude>org.eclipse.jetty</exclude>
+        <exclude>org.glassfish.hk2</exclude>
+        <exclude>org.glassfish.hk2.external</exclude>
         <exclude>org.glassfish.jersey.containers</exclude>
+        <exclude>org.glassfish.jersey.containers</exclude>
+        <exclude>org.glassfish.jersey.core</exclude>
         <exclude>org.glassfish.jersey.core</exclude>
         <exclude>org.glassfish.jersey.ext</exclude>
         <exclude>org.glassfish.jersey.media</exclude>
-        <exclude>org.glassfish.hk2</exclude>
-        <exclude>javax.servlet</exclude>
-        <exclude>javax.ws.rs </exclude>
+        <exclude>org.junit.jupiter:*:jar</exclude>
+        <exclude>org.junit.platform:*:jar</exclude>
+        <exclude>org.junit.vintage:*:jar</exclude>
         <exclude>org.jvnet.mimepull</exclude>
-        <exclude>com.sun.codemodel</exclude>
-        <exclude>javax.xml.bind</exclude>
-        <exclude>ch.qos.logback </exclude>
-        <exclude>ch.qos.logback</exclude>
-        <exclude>io.netty:netty-tcnative</exclude>
+        <exclude>org.reflections</exclude>
       </excludes>
       <scope>test</scope>
     </dependencySet>
diff --git a/exec/java-exec/pom.xml b/exec/java-exec/pom.xml
index 045d812..30a82ac 100644
--- a/exec/java-exec/pom.xml
+++ b/exec/java-exec/pom.xml
@@ -689,46 +689,6 @@
       </build>
     </profile>
     <profile>
-      <id>mapr</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>add-mapr-sources</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>srcMapr/main/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <dependencies>
-        <dependency>
-          <groupId>com.mapr.hadoop</groupId>
-          <artifactId>maprfs</artifactId>
-          <scope>runtime</scope>
-        </dependency>
-        <dependency>
-          <groupId>com.tdunning</groupId>
-          <artifactId>json</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>com.mapr.security</groupId>
-          <artifactId>mapr-security-web</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
-    <profile>
       <id>hdp</id>
       <dependencies>
         <dependency>
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
index 8fd01be..c13d7a3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
@@ -213,7 +213,6 @@
   public static final String SSL_TRUSTSTORE_PATH = "drill.exec.ssl.trustStorePath"; // path to keystore. default : $JRE_HOME/lib/security/cacerts.jks
   public static final String SSL_TRUSTSTORE_PASSWORD = "drill.exec.ssl.trustStorePassword"; // default: changeit
   public static final String SSL_USE_HADOOP_CONF = "drill.exec.ssl.useHadoopConfig"; // Initialize ssl params from hadoop if not provided by drill. default: true
-  public static final String SSL_USE_MAPR_CONFIG = "drill.exec.ssl.useMapRSSLConfig"; // Use keyStore and trustStore credentials provided by MapR platform.
   public static final String SSL_HANDSHAKE_TIMEOUT = "drill.exec.security.user.encryption.ssl.handshakeTimeout"; // Default 10 seconds
 
   public static final String TEXT_LINE_READER_BATCH_SIZE = "drill.exec.storage.file.text.batch.size";
@@ -646,21 +645,6 @@
   public static final OptionValidator HIVE_OPTIMIZE_PARQUET_SCAN_WITH_NATIVE_READER_VALIDATOR =
       new BooleanValidator(HIVE_OPTIMIZE_PARQUET_SCAN_WITH_NATIVE_READER,
           new OptionDescription("Optimize reads of Parquet-backed external tables from Hive by using Drill native readers instead of the Hive Serde interface. (Drill 1.2+)"));
-  public static final String HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER = "store.hive.maprdb_json.optimize_scan_with_native_reader";
-  public static final OptionValidator HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER_VALIDATOR =
-      new BooleanValidator(HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER,
-          new OptionDescription("Enables Drill to use the Drill native reader (instead of the Hive Serde interface) to optimize reads of MapR Database JSON tables from Hive. Default is false. (Drill 1.14+)"));
-
-  public static final String HIVE_READ_MAPRDB_JSON_TIMESTAMP_WITH_TIMEZONE_OFFSET = "store.hive.maprdb_json.read_timestamp_with_timezone_offset";
-  public static final OptionValidator HIVE_READ_MAPRDB_JSON_TIMESTAMP_WITH_TIMEZONE_OFFSET_VALIDATOR =
-      new BooleanValidator(HIVE_READ_MAPRDB_JSON_TIMESTAMP_WITH_TIMEZONE_OFFSET,
-          new OptionDescription("Enables Drill to read timestamp values with timezone offset when Hive plugin is used and Drill native MaprDB JSON reader usage is enabled. (Drill 1.16+)"));
-
-  public static final String HIVE_MAPRDB_JSON_ALL_TEXT_MODE = "store.hive.maprdb_json.all_text_mode";
-  public static final OptionValidator HIVE_MAPRDB_JSON_ALL_TEXT_MODE_VALIDATOR =
-      new BooleanValidator(HIVE_MAPRDB_JSON_ALL_TEXT_MODE,
-          new OptionDescription("Drill reads all data from the maprDB Json tables as VARCHAR when hive plugin is used and Drill native MaprDB JSON reader usage is enabled. Prevents schema change errors. (Drill 1.17+)"));
-
   public static final String HIVE_CONF_PROPERTIES = "store.hive.conf.properties";
   public static final OptionValidator HIVE_CONF_PROPERTIES_VALIDATOR = new StringValidator(HIVE_CONF_PROPERTIES,
       new OptionDescription("Enables the user to specify Hive properties at the session level. Do not set the property values in quotes. Separate the property name and value by =. Separate each property with a new line (\\n). Example: set `store.hive.conf.properties` = 'hive.mapred.supports.subdirectories=true\\nmapred.input.dir.recursive=true'. (Drill 1.14+)"));
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
index 707cec9..321a35d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
@@ -220,9 +220,6 @@
       new OptionDefinition(ExecConstants.KAFKA_READER_ESCAPE_ANY_CHAR_VALIDATOR),
       new OptionDefinition(ExecConstants.HIVE_OPTIMIZE_SCAN_WITH_NATIVE_READERS_VALIDATOR),
       new OptionDefinition(ExecConstants.HIVE_OPTIMIZE_PARQUET_SCAN_WITH_NATIVE_READER_VALIDATOR),
-      new OptionDefinition(ExecConstants.HIVE_OPTIMIZE_MAPRDB_JSON_SCAN_WITH_NATIVE_READER_VALIDATOR),
-      new OptionDefinition(ExecConstants.HIVE_READ_MAPRDB_JSON_TIMESTAMP_WITH_TIMEZONE_OFFSET_VALIDATOR),
-      new OptionDefinition(ExecConstants.HIVE_MAPRDB_JSON_ALL_TEXT_MODE_VALIDATOR),
       new OptionDefinition(ExecConstants.HIVE_CONF_PROPERTIES_VALIDATOR),
       new OptionDefinition(ExecConstants.SLICE_TARGET_OPTION),
       new OptionDefinition(ExecConstants.AFFINITY_FACTOR),
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigClient.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigClient.java
index 3b4f12b..607c855 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigClient.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigClient.java
@@ -59,8 +59,7 @@
     SSLCredentialsProvider credentialsProvider = SSLCredentialsProvider.getSSLCredentialsProvider(
         this::getStringProperty,
         this::getPasswordStringProperty,
-        getMode(),
-        getBooleanProperty(DrillProperties.USE_MAPR_SSL_CONFIG)
+        getMode()
     );
     trustStoreType = credentialsProvider.getTrustStoreType(DrillProperties.TRUSTSTORE_TYPE, "JKS");
     trustStorePath = credentialsProvider.getTrustStoreLocation(DrillProperties.TRUSTSTORE_PATH, "");
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigServer.java
index 8d3e7e2..3d3c6b0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigServer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLConfigServer.java
@@ -78,8 +78,8 @@
     SSLCredentialsProvider credentialsProvider = SSLCredentialsProvider.getSSLCredentialsProvider(
         this::getConfigParam,
         this::getPasswordConfigParam,
-        Mode.SERVER,
-        config.getBoolean(ExecConstants.SSL_USE_MAPR_CONFIG));
+        Mode.SERVER
+    );
     trustStoreType = credentialsProvider.getTrustStoreType(
         ExecConstants.SSL_TRUSTSTORE_TYPE, resolveHadoopPropertyName(HADOOP_SSL_TRUSTSTORE_TYPE_TPL_KEY, mode));
     trustStorePath = credentialsProvider.getTrustStoreLocation(
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLCredentialsProvider.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLCredentialsProvider.java
index e2d0ced..982bfc1 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLCredentialsProvider.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ssl/SSLCredentialsProvider.java
@@ -17,23 +17,13 @@
  */
 package org.apache.drill.exec.ssl;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Optional;
 import java.util.function.BiFunction;
 
 /**
- * Provides an implementation of credentials provider depending on "useMapRSSLConfig" option value
- * and whether Drill was built with mapr profile or not.
+ * Provides an implementation of credentials provider.
  */
 abstract class SSLCredentialsProvider {
 
-  private static final String MAPR_CREDENTIALS_PROVIDER_CLIENT = "org.apache.drill.exec.ssl.SSLCredentialsProviderMaprClient";
-  private static final String MAPR_CREDENTIALS_PROVIDER_SERVER = "org.apache.drill.exec.ssl.SSLCredentialsProviderMaprServer";
-
-  private static final Logger logger = LoggerFactory.getLogger(SSLCredentialsProvider.class);
-
   /**
    * Provides a concrete implementation of {@link SSLCredentialsProvider}.
    *
@@ -48,34 +38,11 @@
    *                          using Hadoop's CredentialProvider API with fallback
    *                          to standard means as is used for {@code getPropertyMethod}
    * @param mode              CLIENT or SERVER
-   * @param useMapRSSLConfig  use a MapR credential provider
    * @return concrete implementation of SSLCredentialsProvider
    */
   static SSLCredentialsProvider getSSLCredentialsProvider(BiFunction<String, String, String> getPropertyMethod,
-      BiFunction<String, String, String> getPasswordPropertyMethod, SSLConfig.Mode mode, boolean useMapRSSLConfig) {
-    return useMapRSSLConfig ? getMaprCredentialsProvider(mode)
-        .orElseGet(() -> new SSLCredentialsProviderImpl(getPropertyMethod, getPasswordPropertyMethod)) :
-        new SSLCredentialsProviderImpl(getPropertyMethod, getPasswordPropertyMethod);
-  }
-
-  private static Optional<SSLCredentialsProvider> getMaprCredentialsProvider(SSLConfig.Mode mode) {
-    String maprCredentialsProviderClass = "";
-    switch (mode) {
-      case SERVER:
-        maprCredentialsProviderClass = MAPR_CREDENTIALS_PROVIDER_SERVER;
-        break;
-      case CLIENT:
-        maprCredentialsProviderClass = MAPR_CREDENTIALS_PROVIDER_CLIENT;
-        break;
-      default:
-        throw new IllegalStateException("Should never occur.");
-    }
-    try {
-      return Optional.of((SSLCredentialsProvider) Class.forName(maprCredentialsProviderClass).newInstance());
-    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
-      logger.warn("Trying to use MapR credentials provider on a non-MapR platform", e);
-      return Optional.empty();
-    }
+      BiFunction<String, String, String> getPasswordPropertyMethod, SSLConfig.Mode mode) {
+    return new SSLCredentialsProviderImpl(getPropertyMethod, getPasswordPropertyMethod);
   }
 
   abstract String getTrustStoreType(String propertyName, String defaultValue);
diff --git a/exec/java-exec/src/main/resources/drill-module.conf b/exec/java-exec/src/main/resources/drill-module.conf
index ff817b5..df311bf 100644
--- a/exec/java-exec/src/main/resources/drill-module.conf
+++ b/exec/java-exec/src/main/resources/drill-module.conf
@@ -219,9 +219,7 @@
     # if true, then Drill will read SSL parameters from the
     # Hadoop configuration files.
     useHadoopConfig : true,
-    # Use keyStore and trustStore credentials provided by MapR platform.
-    useMapRSSLConfig : false,
-    #Drill can use either the JDK implementation or the OpenSSL implementation.
+    # Drill can use either the JDK implementation or the OpenSSL implementation.
     provider: "JDK"
   },
   network: {
@@ -695,9 +693,6 @@
     store.format: "parquet",
     store.hive.optimize_scan_with_native_readers: false,
     store.hive.parquet.optimize_scan_with_native_reader: false,
-    store.hive.maprdb_json.optimize_scan_with_native_reader: false,
-    store.hive.maprdb_json.read_timestamp_with_timezone_offset: false,
-    store.hive.maprdb_json.all_text_mode: false,
     # Properties values should NOT be set in double-quotes or any other quotes.
     # Property name and value should be separated by =.
     # Properties should be separated by new line (\n).
diff --git a/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprClient.java b/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprClient.java
deleted file mode 100644
index aebfd59..0000000
--- a/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprClient.java
+++ /dev/null
@@ -1,64 +0,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.
- */
-package org.apache.drill.exec.ssl;
-
-import com.mapr.web.security.SslConfig;
-import com.mapr.web.security.WebSecurityManager;
-
-/**
- * Provides SSL credentials for Client using {@link WebSecurityManager}.
- */
-class SSLCredentialsProviderMaprClient extends SSLCredentialsProvider {
-
-  private final SslConfig sslConfig = WebSecurityManager.getSslConfig();
-
-  @Override
-  String getTrustStoreType(String propertyName, String defaultValue) {
-    return sslConfig.getClientTruststoreType();
-  }
-
-  @Override
-  String getTrustStoreLocation(String propertyName, String defaultValue) {
-    return sslConfig.getClientTruststoreLocation();
-  }
-
-  @Override
-  String getTrustStorePassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getClientTruststorePassword());
-  }
-
-  @Override
-  String getKeyStoreType(String propertyName, String defaultValue) {
-    return sslConfig.getClientKeystoreType();
-  }
-
-  @Override
-  String getKeyStoreLocation(String propertyName, String defaultValue) {
-    return sslConfig.getClientKeystoreLocation();
-  }
-
-  @Override
-  String getKeyStorePassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getClientKeystorePassword());
-  }
-
-  @Override
-  String getKeyPassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getClientKeyPassword());
-  }
-}
diff --git a/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprServer.java b/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprServer.java
deleted file mode 100644
index 11860df..0000000
--- a/exec/java-exec/srcMapr/main/java/org/apache/drill/exec/ssl/SSLCredentialsProviderMaprServer.java
+++ /dev/null
@@ -1,64 +0,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.
- */
-package org.apache.drill.exec.ssl;
-
-import com.mapr.web.security.SslConfig;
-import com.mapr.web.security.WebSecurityManager;
-
-/**
- * Provides SSL credentials for Server using {@link WebSecurityManager}.
- */
-class SSLCredentialsProviderMaprServer extends SSLCredentialsProvider {
-
-  private final SslConfig sslConfig = WebSecurityManager.getSslConfig();
-
-  @Override
-  String getTrustStoreType(String propertyName, String defaultValue) {
-    return sslConfig.getServerTruststoreType();
-  }
-
-  @Override
-  String getTrustStoreLocation(String propertyName, String defaultValue) {
-    return sslConfig.getServerTruststoreLocation();
-  }
-
-  @Override
-  String getTrustStorePassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getServerTruststorePassword());
-  }
-
-  @Override
-  String getKeyStoreType(String propertyName, String defaultValue) {
-    return sslConfig.getServerKeystoreType();
-  }
-
-  @Override
-  String getKeyStoreLocation(String propertyName, String defaultValue) {
-    return sslConfig.getServerKeystoreLocation();
-  }
-
-  @Override
-  String getKeyStorePassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getServerKeystorePassword());
-  }
-
-  @Override
-  String getKeyPassword(String propertyName, String defaultValue) {
-    return String.valueOf(sslConfig.getServerKeyPassword());
-  }
-}
diff --git a/exec/jdbc-all/pom.xml b/exec/jdbc-all/pom.xml
index 64a2196..2e2b7b0 100644
--- a/exec/jdbc-all/pom.xml
+++ b/exec/jdbc-all/pom.xml
@@ -831,413 +831,6 @@
 
   <profiles>
     <profile>
-      <id>mapr</id>
-      <properties>
-        <package.namespace.prefix />
-      </properties>
-
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-shade-plugin</artifactId>
-            <configuration>
-              <shadedArtifactAttached>false</shadedArtifactAttached>
-              <createDependencyReducedPom>true</createDependencyReducedPom>
-              <!-- TODO DRILL-4336: try to move the dependencyReducedPom out of the default location (the module root).
-                   Putting it here caused the target directory to be run as a submodule (oddly
-                   only when trying to run the maven release goal) -->
-              <!--dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation-->
-              <!-- TODO DRILL-4336: an attempt to fix the issue by moving the file elsewhere, had issues executing
-                   but may be able to be modified to to fix the issue-->
-              <!--dependencyReducedPomLocation>${project.build.directory}/generated/shade/dependency-reduced-pom.xml</dependencyReducedPomLocation-->
-              <minimizeJar>false</minimizeJar>
-
-              <!-- Exclude dependencies at artifact level. Format is "groupId:artifactId[[:type]:classifier]" -->
-              <artifactSet>
-                <includes>
-                  <include>*:*</include>
-                </includes>
-                <excludes>
-                  <exclude>org.slf4j:jcl-over-slf4j</exclude>
-                  <exclude>io.protostuff:*</exclude>
-                  <exclude>${calcite.groupId}:calcite-core</exclude>
-                  <exclude>${calcite.groupId}:calcite-linq4j</exclude>
-                  <exclude>org.pentaho:*</exclude>
-                  <exclude>org.msgpack:*</exclude>
-                  <exclude>xerces:*</exclude>
-                  <exclude>xalan:*</exclude>
-                  <exclude>org.apache.avro:*</exclude>
-                  <exclude>org.mongodb:*</exclude>
-                  <exclude>com.googlecode.json-simple:*</exclude>
-                  <exclude>dom4j:*</exclude>
-                  <exclude>org.hibernate:*</exclude>
-                  <exclude>antlr:*</exclude>
-                  <exclude>org.ow2.asm:*</exclude>
-                  <exclude>com.univocity:*</exclude>
-                  <exclude>net.sf.jpam:*</exclude>
-                  <exclude>com.twitter:*</exclude>
-                  <exclude>org.apache.parquet:*</exclude>
-                  <exclude>javax.inject:*</exclude>
-                  <exclude>com.beust:*</exclude>
-                  <exclude>jline:*</exclude>
-                  <exclude>org.xerial.snappy:*</exclude>
-                  <exclude>org.apache.avro:*</exclude>
-                  <exclude>org.tukaani:*</exclude>
-                  <exclude>org.apache.velocity:*</exclude>
-                  <exclude>net.hydromatic:linq4j</exclude>
-                  <exclude>org.codehaus.janino:*</exclude>
-                  <exclude>org.eclipse.jetty:*</exclude>
-                  <exclude>org.slf4j:jul-to-slf4j</exclude>
-                  <exclude>org.slf4j:log4j-over-slf4j</exclude>
-                  <exclude>org.hamcrest:hamcrest-core</exclude>
-                  <exclude>org.mockito:mockito-core</exclude>
-                  <exclude>org.objenesis:objenesis</exclude>
-                  <exclude>org.eclipse.jetty:*</exclude>
-                  <exclude>org.apache.hadoop:*</exclude>
-                  <exclude>org.jboss.netty:netty</exclude>
-                  <exclude>javax.xml.bind:jaxb-api</exclude>
-                  <exclude>javax.xml.stream:stax-api</exclude>
-                  <exclude>javax.activation:activation</exclude>
-                  <exclude>commons-cli:commons-cli</exclude>
-                  <exclude>org.apache.commons:commons-collections4</exclude>
-                  <exclude>commons-io:commons-io</exclude>
-                  <exclude>commons-beanutils:commons-beanutils-core:jar:*</exclude>
-                  <exclude>commons-beanutils:commons-beanutils:jar:*</exclude>
-                  <exclude>com.google.code.findbugs:jsr305:*</exclude>
-                  <exclude>com.esri.geometry:esri-geometry-api:*</exclude>
-                  <exclude>dnsjava:dnsjava:jar:*</exclude>
-                  <exclude>io.netty:netty-tcnative:jar:*</exclude>
-                  <exclude>io.netty:netty-tcnative-classes:jar:*</exclude>
-                  <exclude>com.bettercloud:vault-java-driver:jar:*</exclude>
-                  <exclude>com.tdunning:t-digest:jar:*</exclude>
-                  <exclude>io.airlift:aircompressor:jar:*</exclude>
-                  <exclude>com.rdblue:brotli-codec:jar:*</exclude>
-                </excludes>
-              </artifactSet>
-              <relocations>
-                <!-- Relocate Drill classes to minimize classloader hell. -->
-                <relocation>
-                  <pattern>org.apache.drill.exec.</pattern>
-                  <shadedPattern>oadd.org.apache.drill.exec.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.drill.common.</pattern>
-                  <shadedPattern>oadd.org.apache.drill.common.</shadedPattern>
-                </relocation>
-
-                <!-- Move dependencies out of path -->
-                <relocation>
-                  <pattern>antlr.</pattern>
-                  <shadedPattern>oadd.antlr.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>antlr.</pattern>
-                  <shadedPattern>oadd.antlr.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>io.</pattern>
-                  <shadedPattern>oadd.io.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>javacc.</pattern>
-                  <shadedPattern>oadd.javacc.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>java_cup.</pattern>
-                  <shadedPattern>oadd.java_cup.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>javassist.</pattern>
-                  <shadedPattern>oadd.javassist.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>jline.</pattern>
-                  <shadedPattern>oadd.jline.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>license.</pattern>
-                  <shadedPattern>oadd.license.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>net.</pattern>
-                  <shadedPattern>oadd.net.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>parquet.</pattern>
-                  <shadedPattern>oadd.parquet.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>test.</pattern>
-                  <shadedPattern>oadd.test.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>trax.</pattern>
-                  <shadedPattern>oadd.trax.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.antlr.</pattern>
-                  <shadedPattern>oadd.org.antlr.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.codehaus.</pattern>
-                  <shadedPattern>oadd.org.codehaus.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.eigenbase.</pattern>
-                  <shadedPattern>oadd.org.eigenbase.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.hamcrest.</pattern>
-                  <shadedPattern>oadd.org.hamcrest.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.jboss.</pattern>
-                  <shadedPattern>oadd.org.jboss.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.joda.</pattern>
-                  <shadedPattern>oadd.org.joda.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.json.</pattern>
-                  <shadedPattern>oadd.org.json.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.mockito.</pattern>
-                  <shadedPattern>oadd.org.mockito.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.msgpack.</pattern>
-                  <shadedPattern>oadd.org.msgpack.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.objectweb.</pattern>
-                  <shadedPattern>oadd.org.objectweb.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.objensis.</pattern>
-                  <shadedPattern>oadd.org.objensis.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.pentaho.</pattern>
-                  <shadedPattern>oadd.org.pentaho.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.reflections.</pattern>
-                  <shadedPattern>oadd.org.reflections.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.tukaani.</pattern>
-                  <shadedPattern>oadd.org.tukaani.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.xerial.</pattern>
-                  <shadedPattern>oadd.org.xerial.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.beust.</pattern>
-                  <shadedPattern>oadd.com.beust.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.carrotsearch.</pattern>
-                  <shadedPattern>oadd.com.carrotsearch.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.codahale.</pattern>
-                  <shadedPattern>oadd.com.codahale.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.dyuproject.</pattern>
-                  <shadedPattern>oadd.com.dyuproject.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.fasterxml.</pattern>
-                  <shadedPattern>oadd.com.fasterxml.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.google.</pattern>
-                  <shadedPattern>oadd.com.google.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.thoughtworks.</pattern>
-                  <shadedPattern>oadd.com.thoughtworks.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.typesafe.</pattern>
-                  <shadedPattern>oadd.com.typesafe.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>com.univocity.</pattern>
-                  <shadedPattern>oadd.com.univocity.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.avro.</pattern>
-                  <shadedPattern>oadd.org.apache.avro.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.bcel.</pattern>
-                  <shadedPattern>oadd.org.apache.bcel.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.calcite.</pattern>
-                  <shadedPattern>oadd.org.apache.calcite.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.commons.</pattern>
-                  <shadedPattern>oadd.org.apache.commons.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.curator.</pattern>
-                  <shadedPattern>oadd.org.apache.curator.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.html.</pattern>
-                  <shadedPattern>oadd.org.apache.html.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.jute.</pattern>
-                  <shadedPattern>oadd.org.apache.jute.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.log4j.</pattern>
-                  <shadedPattern>oadd.org.apache.log4j.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.regexp.</pattern>
-                  <shadedPattern>oadd.org.apache.regexp.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.velocity.</pattern>
-                  <shadedPattern>oadd.org.apache.velocity.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.wml.</pattern>
-                  <shadedPattern>oadd.org.apache.wml.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.xalan.</pattern>
-                  <shadedPattern>oadd.org.apache.xalan.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.xerces.</pattern>
-                  <shadedPattern>oadd.org.apache.xerces.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.xml.</pattern>
-                  <shadedPattern>oadd.org.apache.xml.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.xmlcommons.</pattern>
-                  <shadedPattern>oadd.org.apache.xmlcommons.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.xpath.</pattern>
-                  <shadedPattern>oadd.org.apache.xpath.</shadedPattern>
-                </relocation>
-                <relocation>
-                  <pattern>org.apache.zookeeper.</pattern>
-                  <shadedPattern>oadd.org.apache.zookeeper.</shadedPattern>
-                </relocation>
-              </relocations>
-              <transformers>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
-                  <resource>drill-module.conf</resource>
-                </transformer>
-              </transformers>
-
-              <!-- Remove the particular directory or class level dependency from final jar -->
-              <filters>
-                <filter>
-                  <artifact>*:*</artifact>
-                  <excludes>
-                    <exclude>**/logback.xml</exclude>
-                    <exclude>**/LICENSE.txt</exclude>
-                    <exclude>**/*.java</exclude>
-                    <exclude>META-INF/ASL2.0</exclude>
-                    <exclude>META-INF/NOTICE.txt</exclude>
-                    <exclude>META-INF/drill-module-scan/**</exclude>
-                    <exclude>META-INF/jboss-beans.xml</exclude>
-                    <exclude>META-INF/license/**</exclude>
-                    <exclude>META-INF/maven/**</exclude>
-                    <exclude>META-INF/native/**</exclude>
-                    <exclude>META-INF/services/com.fasterxml.*</exclude>
-                    <exclude>META-INF/services/javax.ws.*</exclude>
-                    <exclude>META-INF/**/*.properties</exclude>
-                    <exclude>**/org.codehaus.commons.compiler.properties</exclude>
-                    <exclude>module-info.class</exclude>
-                    <exclude>**/*.SF</exclude>
-                    <exclude>**/*.RSA</exclude>
-                    <exclude>**/*.DSA</exclude>
-                    <exclude>javax/*</exclude>
-                    <exclude>javax/activation/**</exclude>
-                    <exclude>javax/annotation-api/**</exclude>
-                    <exclude>javax/inject/**</exclude>
-                    <exclude>javax/servlet-api/**</exclude>
-                    <exclude>javax/json/**</exclude>
-                    <exclude>javax/ws/**</exclude>
-                    <exclude>rest/**</exclude>
-                    <exclude>*.tokens</exclude>
-                    <exclude>codegen/**</exclude>
-                    <exclude>bootstrap-storage-plugins.json</exclude>
-                    <exclude>org/apache/parquet</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/html/**</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/drill/shaded/guava/com/google/common/graph/**</exclude>
-                    <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Tree*</exclude>
-                    <exclude>org/apache/drill/shaded/guava/com/google/common/collect/Standard*</exclude>
-                    <exclude>org/apache/drill/shaded/guava/com/google/common/graph/**</exclude>
-                    <exclude>com/google/common/math</exclude>
-                    <exclude>com/google/common/net</exclude>
-                    <exclude>com/google/common/primitives</exclude>
-                    <exclude>com/google/common/reflect</exclude>
-                    <exclude>com/google/common/util</exclude>
-                    <exclude>com/google/common/cache</exclude>
-                    <exclude>com/google/common/collect/Tree*</exclude>
-                    <exclude>com/google/common/collect/Standard*</exclude>
-                    <exclude>org/apache/drill/exec/expr/annotations/**</exclude>
-                    <exclude>org/apache/drill/exec/expr/fn/**</exclude>
-                    <exclude>org/apache/drill/exec/proto/beans/**</exclude>
-                    <exclude>org/apache/drill/exec/compile/**</exclude>
-                    <exclude>org/apache/drill/exec/planner/**</exclude>
-                    <exclude>org/apache/drill/exec/physical/**</exclude>
-                    <exclude>org/apache/drill/exec/store/**</exclude>
-                    <exclude>org/apache/drill/exec/server/rest/**</exclude>
-                    <exclude>org/apache/drill/exec/rpc/data/**</exclude>
-                    <exclude>org/apache/drill/exec/rpc/control/**</exclude>
-                    <exclude>org/apache/drill/exec/work/**</exclude>
-                    <exclude>org/apache/drill/metastore/**</exclude>
-                    <exclude>org/apache/hadoop/**</exclude>
-                    <exclude>org/apache/commons/pool2/**</exclude>
-                    <exclude>org/apache/http/**</exclude>
-                    <exclude>org/apache/directory/**</exclude>
-                    <exclude>com/jcraft/**</exclude>
-                    <exclude>**/mapr/**</exclude>
-                    <exclude>org/yaml/**</exclude>
-                    <exclude>hello/**</exclude>
-                    <exclude>webapps/**</exclude>
-                  </excludes>
-                </filter>
-                <!-- This file is used to automatically load given jdbc driver without calling Class.forName().
-                     Excluding the Avatica service file which is conflicting with the Drill one. -->
-                <filter>
-                  <artifact>org.apache.calcite.avatica:*</artifact>
-                  <excludes>
-                    <exclude>META-INF/services/java.sql.Driver</exclude>
-                    <!-- Excludes shaded slf4j to avoid conflicts when they are put into the fat jar -->
-                    <exclude>org/slf4j/**</exclude>
-                  </excludes>
-                </filter>
-              </filters>
-            </configuration>
-          </plugin>
-        </plugins>
-
-      </build>
-    </profile>
-    <profile>
       <id>apache-release</id>
       <build>
         <plugins>
diff --git a/exec/jdbc/pom.xml b/exec/jdbc/pom.xml
index 6f02d45..eacf45e 100644
--- a/exec/jdbc/pom.xml
+++ b/exec/jdbc/pom.xml
@@ -124,30 +124,6 @@
       </dependencies>
     </profile>
     <profile>
-      <id>mapr</id>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-common</artifactId>
-          <scope>test</scope>
-          <exclusions>
-            <exclusion>
-              <artifactId>commons-logging</artifactId>
-              <groupId>commons-logging</groupId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.eclipse.jetty</groupId>
-              <artifactId>jetty-server</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.eclipse.jetty</groupId>
-              <artifactId>jetty-servlet</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-      </dependencies>
-    </profile>
-    <profile>
       <id>cdh4</id>
       <dependencies>
         <dependency>
diff --git a/metastore/iceberg-metastore/pom.xml b/metastore/iceberg-metastore/pom.xml
index 2737bfd..15a3371 100644
--- a/metastore/iceberg-metastore/pom.xml
+++ b/metastore/iceberg-metastore/pom.xml
@@ -157,44 +157,4 @@
     </dependency>
   </dependencies>
 
-  <profiles>
-    <profile>
-      <id>mapr</id>
-      <dependencies>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-client</artifactId>
-          <scope>test</scope>
-          <exclusions>
-            <exclusion>
-              <groupId>commons-codec</groupId>
-              <artifactId>commons-codec</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-hdfs</artifactId>
-          <scope>test</scope>
-          <classifier>tests</classifier>
-          <exclusions>
-            <exclusion>
-              <groupId>commons-codec</groupId>
-              <artifactId>commons-codec</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>ch.qos.reload4j</groupId>
-              <artifactId>reload4j</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-        <dependency>
-          <groupId>org.eclipse.jetty</groupId>
-          <artifactId>jetty-servlet</artifactId>
-          <scope>test</scope>
-        </dependency>
-      </dependencies>
-    </profile>
-  </profiles>
-
 </project>
diff --git a/pom.xml b/pom.xml
index ef72a77..ecbf0a9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,8 +59,6 @@
     <sqlline.version>1.12.0</sqlline.version>
     <jackson.version>2.14.3</jackson.version>
     <zookeeper.version>3.5.7</zookeeper.version>
-    <mapr.release.version>6.1.0-mapr</mapr.release.version>
-    <ojai.version>3.0-mapr-1808</ojai.version>
     <kerby.version>1.0.0</kerby.version>
     <findbugs.version>3.0.5</findbugs.version>
     <netty.tcnative.classifier />
@@ -175,18 +173,6 @@
 
   <repositories>
     <repository>
-      <id>mapr-releases</id>
-      <url>https://repository.mapr.com/maven/</url>
-      <releases>
-        <enabled>true</enabled>
-        <checksumPolicy>fail</checksumPolicy>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-
-    <repository>
       <id>sonatype-nexus-snapshots</id>
       <url>https://oss.sonatype.org/content/repositories/snapshots</url>
       <releases>
@@ -1646,109 +1632,6 @@
         <version>1.1.1</version>
       </dependency>
       <dependency>
-        <groupId>com.mapr.db</groupId>
-        <artifactId>maprdb</artifactId>
-        <version>${mapr.release.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.mapr.fs</groupId>
-        <artifactId>mapr-hbase</artifactId>
-        <version>${mapr.release.version}</version>
-        <exclusions>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-reload4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-core</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-server</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-json</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>asm</groupId>
-            <artifactId>asm</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-server</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlet</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>com.mapr.hadoop</groupId>
-        <artifactId>maprfs</artifactId>
-        <version>${mapr.release.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.yaml</groupId>
-            <artifactId>snakeyaml</artifactId>
-          </exclusion>
-          <exclusion>
-            <artifactId>commons-logging</artifactId>
-            <groupId>commons-logging</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>log4j</artifactId>
-            <groupId>log4j</groupId>
-          </exclusion>
-          <exclusion>
-            <artifactId>slf4j-log4j12</artifactId>
-            <groupId>org.slf4j</groupId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-reload4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>com.mapr.security</groupId>
-        <artifactId>mapr-security-web</artifactId>
-        <version>${mapr.release.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.ojai</groupId>
-        <artifactId>ojai</artifactId>
-        <version>${ojai.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-common</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-tcnative</artifactId>
         <version>2.0.48.Final</version>
@@ -2029,6 +1912,7 @@
         <type>pom</type>
         <scope>import</scope>
       </dependency>
+
     </dependencies>
   </dependencyManagement>
 
@@ -2937,608 +2821,6 @@
       </dependencyManagement>
     </profile>
     <profile>
-      <id>mapr</id>
-      <properties>
-        <alt-hadoop>mapr</alt-hadoop>
-        <hive.version>2.3.3-mapr-1808</hive.version>
-        <hbase.version>1.1.1-mapr-1602-m7-5.2.0</hbase.version>
-        <hadoop.version>2.7.0-mapr-1808</hadoop.version>
-        <zookeeper.version>3.4.11-mapr-1808</zookeeper.version>
-        <!-- TODO: Remove this property and use a common dependency of curator-test after ZooKeeper 3.5+
-        for MapR profile is released. See problem description in https://issues.apache.org/jira/browse/CURATOR-428 -->
-        <curator.test.version>2.13.0</curator.test.version>
-      </properties>
-      <dependencyManagement>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-common</artifactId>
-            <version>${hadoop.version}</version>
-            <exclusions>
-              <exclusion>
-                <artifactId>commons-logging</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jets3t</artifactId>
-                <groupId>net.java.dev.jets3t</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-log4j12</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-reload4j</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>mockito-all</artifactId>
-                <groupId>org.mockito</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>commons-logging-api</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>core</artifactId>
-                <groupId>org.eclipse.jdt</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-xc</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-jaxrs</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>commons-httpclient</groupId>
-                <artifactId>commons-httpclient</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>dnsjava</groupId>
-                <artifactId>dnsjava</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-client</artifactId>
-            <version>${hadoop.version}</version>
-            <exclusions>
-              <exclusion>
-                <artifactId>commons-logging</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-util</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jets3t</artifactId>
-                <groupId>net.java.dev.jets3t</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-log4j12</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-reload4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>mockito-all</artifactId>
-                <groupId>org.mockito</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>commons-logging-api</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>core</artifactId>
-                <groupId>org.eclipse.jdt</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-xc</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-jaxrs</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.apache.hadoop</groupId>
-                <artifactId>hadoop-core</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-yarn-client</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>compile</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-xc</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-jaxrs</artifactId>
-              </exclusion>
-
-              <!-- Exclude the following to prevent enforcer failures. YARN uses them,
-                   but Drill forbids them. -->
-
-              <exclusion>
-                <groupId>log4j</groupId>
-                <artifactId>log4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hive</groupId>
-            <artifactId>hive-maprdb-json-handler</artifactId>
-            <version>${hive.version}</version>
-            <exclusions>
-              <exclusion>
-                <groupId>org.apache.hive</groupId>
-                <artifactId>hive-exec</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>com.mapr.db</groupId>
-            <artifactId>maprdb-mapreduce</artifactId>
-            <version>${mapr.release.version}</version>
-            <exclusions>
-              <exclusion>
-                <groupId>log4j</groupId>
-                <artifactId>log4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-log4j12</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-reload4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>xerces</groupId>
-            <artifactId>xercesImpl</artifactId>
-            <version>${xerces.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.parquet</groupId>
-            <artifactId>parquet-hadoop</artifactId>
-            <version>${parquet.version}</version>
-            <exclusions>
-              <exclusion>
-                <groupId>org.xerial.snappy</groupId>
-                <artifactId>snappy-java</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <!-- Test Dependencies -->
-          <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-hdfs</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>test</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-yarn-api</artifactId>
-            <version>${hadoop.version}</version>
-            <scope>test</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>log4j</groupId>
-                <artifactId>log4j</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-client</artifactId>
-            <version>${hbase.version}</version>
-            <exclusions>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-log4j12</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-reload4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-core-asl</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.codehaus.jackson</groupId>
-                <artifactId>jackson-mapper-asl</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-server</artifactId>
-            <version>${hbase.version}</version>
-            <exclusions>
-              <exclusion>
-                <groupId>tomcat</groupId>
-                <artifactId>jasper-compiler</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>tomcat</groupId>
-                <artifactId>jasper-runtime</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jetty-jsp</artifactId>
-                <groupId>org.eclipse.jetty</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>jamon-runtime</artifactId>
-                <groupId>org.jamon</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>commons-logging</groupId>
-                <artifactId>commons-logging</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-log4j12</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-reload4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-core</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-json</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>com.sun.jersey</groupId>
-                <artifactId>jersey-client</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-testing-util</artifactId>
-            <classifier>tests</classifier>
-            <version>${hbase.version}</version>
-            <scope>test</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>javax.servlet</groupId>
-                <artifactId>servlet-api</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-server</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.eclipse.jetty</groupId>
-                <artifactId>jetty-servlet</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>commons-logging</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>slf4j-log4j12</artifactId>
-                <groupId>org.slf4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-reload4j</artifactId>
-              </exclusion>
-              <exclusion>
-                <artifactId>asm</artifactId>
-                <groupId>asm</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>org.apache.hbase</groupId>
-                <artifactId>hbase-annotations</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>tomcat</groupId>
-                <artifactId>jasper-compiler</artifactId>
-              </exclusion>
-              <exclusion>
-                <groupId>tomcat</groupId>
-                <artifactId>jasper-runtime</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.curator</groupId>
-            <artifactId>curator-test</artifactId>
-            <version>${curator.test.version}</version>
-            <scope>test</scope>
-            <exclusions>
-              <exclusion>
-                <groupId>log4j</groupId>
-                <artifactId>log4j</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-annotations</artifactId>
-            <version>${hbase.version}</version>
-            <exclusions>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <groupId>jdk.tools</groupId>
-                <artifactId>jdk.tools</artifactId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-common</artifactId>
-            <version>${hbase.version}</version>
-            <exclusions>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>commons-logging</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.hbase</groupId>
-            <artifactId>hbase-protocol</artifactId>
-            <version>${hbase.version}</version>
-            <exclusions>
-              <exclusion>
-                <artifactId>log4j</artifactId>
-                <groupId>log4j</groupId>
-              </exclusion>
-              <exclusion>
-                <artifactId>commons-logging</artifactId>
-                <groupId>commons-logging</groupId>
-              </exclusion>
-            </exclusions>
-          </dependency>
-        </dependencies>
-      </dependencyManagement>
-    </profile>
-    <profile>
       <id>cdh</id>
       <properties>
         <alt-hadoop>cdh4</alt-hadoop>
@@ -4599,6 +3881,7 @@
         </dependencies>
       </dependencyManagement>
     </profile>
+
   </profiles>
   <modules>
     <module>tools</module>
