From 81e5619ca141a1d3a06547d2b682cbe3f135b360 Mon Sep 17 00:00:00 2001
From: Anirudh <ramanathana@google.com>
Date: Tue, 6 Dec 2016 16:23:27 -0800
Subject: [PATCH] [SPARK-18662] Move resource managers to separate directory

## What changes were proposed in this pull request?

* Moves yarn and mesos scheduler backends to resource-managers/ sub-directory (in preparation for https://issues.apache.org/jira/browse/SPARK-18278)
* Corresponding change in top-level pom.xml.

Ref: https://github.com/apache/spark/pull/16061#issuecomment-263649340

## How was this patch tested?

* Manual tests

/cc rxin

Author: Anirudh <ramanathana@google.com>

Closes #16092 from foxish/fix-scheduler-structure-2.
---
 dev/sparktestsupport/modules.py                               | 4 ++--
 pom.xml                                                       | 4 ++--
 {mesos => resource-managers/mesos}/pom.xml                    | 2 +-
 .../org.apache.spark.scheduler.ExternalClusterManager         | 0
 .../apache/spark/deploy/mesos/MesosClusterDispatcher.scala    | 0
 .../spark/deploy/mesos/MesosClusterDispatcherArguments.scala  | 0
 .../apache/spark/deploy/mesos/MesosDriverDescription.scala    | 0
 .../spark/deploy/mesos/MesosExternalShuffleService.scala      | 0
 .../src/main/scala/org/apache/spark/deploy/mesos/config.scala | 0
 .../scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala   | 0
 .../org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala   | 0
 .../org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala     | 0
 .../org/apache/spark/deploy/rest/mesos/MesosRestServer.scala  | 0
 .../org/apache/spark/executor/MesosExecutorBackend.scala      | 0
 .../spark/scheduler/cluster/mesos/MesosClusterManager.scala   | 0
 .../cluster/mesos/MesosClusterPersistenceEngine.scala         | 0
 .../spark/scheduler/cluster/mesos/MesosClusterScheduler.scala | 0
 .../scheduler/cluster/mesos/MesosClusterSchedulerSource.scala | 0
 .../cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala    | 0
 .../cluster/mesos/MesosFineGrainedSchedulerBackend.scala      | 0
 .../scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala   | 0
 .../spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala   | 0
 .../spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala   | 0
 .../deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala   | 0
 .../spark/deploy/mesos/MesosClusterDispatcherSuite.scala      | 0
 .../scheduler/cluster/mesos/MesosClusterManagerSuite.scala    | 0
 .../scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala  | 0
 .../mesos/MesosCoarseGrainedSchedulerBackendSuite.scala       | 0
 .../cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala | 0
 .../scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala    | 0
 .../scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala    | 0
 .../org/apache/spark/scheduler/cluster/mesos/Utils.scala      | 0
 {yarn => resource-managers/yarn}/pom.xml                      | 2 +-
 ...pache.spark.deploy.yarn.security.ServiceCredentialProvider | 0
 .../org.apache.spark.scheduler.ExternalClusterManager         | 0
 .../org/apache/spark/deploy/yarn/ApplicationMaster.scala      | 0
 .../apache/spark/deploy/yarn/ApplicationMasterArguments.scala | 0
 .../src/main/scala/org/apache/spark/deploy/yarn/Client.scala  | 0
 .../scala/org/apache/spark/deploy/yarn/ClientArguments.scala  | 0
 .../spark/deploy/yarn/ClientDistributedCacheManager.scala     | 0
 .../scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala | 0
 .../yarn/LocalityPreferredContainerPlacementStrategy.scala    | 0
 .../scala/org/apache/spark/deploy/yarn/YarnAllocator.scala    | 0
 .../scala/org/apache/spark/deploy/yarn/YarnRMClient.scala     | 0
 .../org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala    | 0
 .../src/main/scala/org/apache/spark/deploy/yarn/config.scala  | 0
 .../spark/deploy/yarn/security/AMCredentialRenewer.scala      | 0
 .../deploy/yarn/security/ConfigurableCredentialManager.scala  | 0
 .../apache/spark/deploy/yarn/security/CredentialUpdater.scala | 0
 .../spark/deploy/yarn/security/HBaseCredentialProvider.scala  | 0
 .../spark/deploy/yarn/security/HDFSCredentialProvider.scala   | 0
 .../spark/deploy/yarn/security/HiveCredentialProvider.scala   | 0
 .../deploy/yarn/security/ServiceCredentialProvider.scala      | 0
 .../org/apache/spark/launcher/YarnCommandBuilderUtils.scala   | 0
 .../spark/scheduler/cluster/SchedulerExtensionService.scala   | 0
 .../spark/scheduler/cluster/YarnClientSchedulerBackend.scala  | 0
 .../apache/spark/scheduler/cluster/YarnClusterManager.scala   | 0
 .../apache/spark/scheduler/cluster/YarnClusterScheduler.scala | 0
 .../spark/scheduler/cluster/YarnClusterSchedulerBackend.scala | 0
 .../org/apache/spark/scheduler/cluster/YarnScheduler.scala    | 0
 .../apache/spark/scheduler/cluster/YarnSchedulerBackend.scala | 0
 ...pache.spark.deploy.yarn.security.ServiceCredentialProvider | 0
 .../yarn}/src/test/resources/log4j.properties                 | 0
 .../org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala   | 0
 .../deploy/yarn/ClientDistributedCacheManagerSuite.scala      | 0
 .../test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala | 0
 .../spark/deploy/yarn/ContainerPlacementStrategySuite.scala   | 0
 .../org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala     | 0
 .../scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala | 0
 .../spark/deploy/yarn/YarnShuffleIntegrationSuite.scala       | 0
 .../apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala   | 0
 .../yarn/security/ConfigurableCredentialManagerSuite.scala    | 0
 .../deploy/yarn/security/HDFSCredentialProviderSuite.scala    | 0
 .../org/apache/spark/launcher/TestClasspathBuilder.scala      | 0
 .../apache/spark/network/shuffle/ShuffleTestAccessor.scala    | 0
 .../apache/spark/network/yarn/YarnShuffleServiceSuite.scala   | 0
 .../org/apache/spark/network/yarn/YarnTestAccessor.scala      | 0
 .../scheduler/cluster/ExtensionServiceIntegrationSuite.scala  | 0
 .../spark/scheduler/cluster/SimpleExtensionService.scala      | 0
 .../spark/scheduler/cluster/StubApplicationAttemptId.scala    | 0
 .../apache/spark/scheduler/cluster/StubApplicationId.scala    | 0
 81 files changed, 6 insertions(+), 6 deletions(-)
 rename {mesos => resource-managers/mesos}/pom.xml (98%)
 rename {mesos => resource-managers/mesos}/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcher.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArguments.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/MesosDriverDescription.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/MesosExternalShuffleService.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/config.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/deploy/rest/mesos/MesosRestServer.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/executor/MesosExecutorBackend.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManager.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterPersistenceEngine.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSource.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala (100%)
 rename {mesos => resource-managers/mesos}/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManagerSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackendSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala (100%)
 rename {mesos => resource-managers/mesos}/src/test/scala/org/apache/spark/scheduler/cluster/mesos/Utils.scala (100%)
 rename {yarn => resource-managers/yarn}/pom.xml (99%)
 rename {yarn => resource-managers/yarn}/src/main/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider (100%)
 rename {yarn => resource-managers/yarn}/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMasterArguments.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/Client.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManager.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/LocalityPreferredContainerPlacementStrategy.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocator.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/YarnRMClient.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/config.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/AMCredentialRenewer.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManager.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/CredentialUpdater.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/HBaseCredentialProvider.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProvider.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/HiveCredentialProvider.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/deploy/yarn/security/ServiceCredentialProvider.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/launcher/YarnCommandBuilderUtils.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/SchedulerExtensionService.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterScheduler.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnScheduler.scala (100%)
 rename {yarn => resource-managers/yarn}/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider (100%)
 rename {yarn => resource-managers/yarn}/src/test/resources/log4j.properties (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManagerSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/ContainerPlacementStrategySuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/YarnShuffleIntegrationSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManagerSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProviderSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/launcher/TestClasspathBuilder.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/network/shuffle/ShuffleTestAccessor.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/network/yarn/YarnShuffleServiceSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/network/yarn/YarnTestAccessor.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/scheduler/cluster/ExtensionServiceIntegrationSuite.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/scheduler/cluster/SimpleExtensionService.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationAttemptId.scala (100%)
 rename {yarn => resource-managers/yarn}/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationId.scala (100%)

diff --git a/dev/sparktestsupport/modules.py b/dev/sparktestsupport/modules.py
index b34ab51f3b..1a7cf9a2c9 100644
--- a/dev/sparktestsupport/modules.py
+++ b/dev/sparktestsupport/modules.py
@@ -469,7 +469,7 @@ yarn = Module(
     name="yarn",
     dependencies=[],
     source_file_regexes=[
-        "yarn/",
+        "resource-managers/yarn/",
         "common/network-yarn/",
     ],
     build_profile_flags=["-Pyarn"],
@@ -485,7 +485,7 @@ yarn = Module(
 mesos = Module(
     name="mesos",
     dependencies=[],
-    source_file_regexes=["mesos/"],
+    source_file_regexes=["resource-managers/mesos/"],
     build_profile_flags=["-Pmesos"],
     sbt_test_goals=["mesos/test"]
 )
diff --git a/pom.xml b/pom.xml
index 2f61d33b47..5e7dc15f9d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2580,7 +2580,7 @@
     <profile>
       <id>yarn</id>
       <modules>
-        <module>yarn</module>
+        <module>resource-managers/yarn</module>
         <module>common/network-yarn</module>
       </modules>
     </profile>
@@ -2588,7 +2588,7 @@
     <profile>
       <id>mesos</id>
       <modules>
-        <module>mesos</module>
+        <module>resource-managers/mesos</module>
       </modules>
     </profile>
 
diff --git a/mesos/pom.xml b/resource-managers/mesos/pom.xml
similarity index 98%
rename from mesos/pom.xml
rename to resource-managers/mesos/pom.xml
index 60f23596bc..c0a8f9a344 100644
--- a/mesos/pom.xml
+++ b/resource-managers/mesos/pom.xml
@@ -21,7 +21,7 @@
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-parent_2.11</artifactId>
     <version>2.2.0-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
+    <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>spark-mesos_2.11</artifactId>
diff --git a/mesos/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager b/resource-managers/mesos/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
similarity index 100%
rename from mesos/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
rename to resource-managers/mesos/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcher.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcher.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcher.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcher.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArguments.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArguments.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArguments.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArguments.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosDriverDescription.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosDriverDescription.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosDriverDescription.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosDriverDescription.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosExternalShuffleService.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosExternalShuffleService.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosExternalShuffleService.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/MesosExternalShuffleService.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/config.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/config.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/config.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/config.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/DriverPage.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterPage.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/mesos/ui/MesosClusterUI.scala
diff --git a/mesos/src/main/scala/org/apache/spark/deploy/rest/mesos/MesosRestServer.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/deploy/rest/mesos/MesosRestServer.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/deploy/rest/mesos/MesosRestServer.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/deploy/rest/mesos/MesosRestServer.scala
diff --git a/mesos/src/main/scala/org/apache/spark/executor/MesosExecutorBackend.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/executor/MesosExecutorBackend.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/executor/MesosExecutorBackend.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/executor/MesosExecutorBackend.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManager.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManager.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManager.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManager.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterPersistenceEngine.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterPersistenceEngine.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterPersistenceEngine.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterPersistenceEngine.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterScheduler.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSource.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSource.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSource.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSource.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackend.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackend.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerBackendUtil.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtils.scala
diff --git a/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala b/resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala
similarity index 100%
rename from mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala
rename to resource-managers/mesos/src/main/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchData.scala
diff --git a/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherArgumentsSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/deploy/mesos/MesosClusterDispatcherSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManagerSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManagerSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManagerSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterManagerSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosClusterSchedulerSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackendSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackendSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackendSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosCoarseGrainedSchedulerBackendSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosFineGrainedSchedulerBackendSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosSchedulerUtilsSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/MesosTaskLaunchDataSuite.scala
diff --git a/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/Utils.scala b/resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/Utils.scala
similarity index 100%
rename from mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/Utils.scala
rename to resource-managers/mesos/src/test/scala/org/apache/spark/scheduler/cluster/mesos/Utils.scala
diff --git a/yarn/pom.xml b/resource-managers/yarn/pom.xml
similarity index 99%
rename from yarn/pom.xml
rename to resource-managers/yarn/pom.xml
index 91e3437749..04b51dc92a 100644
--- a/yarn/pom.xml
+++ b/resource-managers/yarn/pom.xml
@@ -21,7 +21,7 @@
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-parent_2.11</artifactId>
     <version>2.2.0-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
+    <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>spark-yarn_2.11</artifactId>
diff --git a/yarn/src/main/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider b/resource-managers/yarn/src/main/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
similarity index 100%
rename from yarn/src/main/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
rename to resource-managers/yarn/src/main/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
diff --git a/yarn/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager b/resource-managers/yarn/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
similarity index 100%
rename from yarn/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
rename to resource-managers/yarn/src/main/resources/META-INF/services/org.apache.spark.scheduler.ExternalClusterManager
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMaster.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMasterArguments.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMasterArguments.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMasterArguments.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ApplicationMasterArguments.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManager.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManager.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManager.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManager.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/ExecutorRunnable.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/LocalityPreferredContainerPlacementStrategy.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/LocalityPreferredContainerPlacementStrategy.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/LocalityPreferredContainerPlacementStrategy.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/LocalityPreferredContainerPlacementStrategy.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocator.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocator.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocator.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocator.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnRMClient.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnRMClient.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnRMClient.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnRMClient.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtil.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/config.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/config.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/config.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/config.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/AMCredentialRenewer.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/AMCredentialRenewer.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/AMCredentialRenewer.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/AMCredentialRenewer.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManager.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManager.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManager.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManager.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/CredentialUpdater.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/CredentialUpdater.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/CredentialUpdater.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/CredentialUpdater.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HBaseCredentialProvider.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HBaseCredentialProvider.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HBaseCredentialProvider.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HBaseCredentialProvider.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProvider.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProvider.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProvider.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProvider.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HiveCredentialProvider.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HiveCredentialProvider.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HiveCredentialProvider.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/HiveCredentialProvider.scala
diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ServiceCredentialProvider.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ServiceCredentialProvider.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ServiceCredentialProvider.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/deploy/yarn/security/ServiceCredentialProvider.scala
diff --git a/yarn/src/main/scala/org/apache/spark/launcher/YarnCommandBuilderUtils.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/launcher/YarnCommandBuilderUtils.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/launcher/YarnCommandBuilderUtils.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/launcher/YarnCommandBuilderUtils.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/SchedulerExtensionService.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/SchedulerExtensionService.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/SchedulerExtensionService.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/SchedulerExtensionService.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClientSchedulerBackend.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterManager.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterScheduler.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterScheduler.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterScheduler.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterScheduler.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnClusterSchedulerBackend.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnScheduler.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnScheduler.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnScheduler.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnScheduler.scala
diff --git a/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala b/resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala
similarity index 100%
rename from yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala
rename to resource-managers/yarn/src/main/scala/org/apache/spark/scheduler/cluster/YarnSchedulerBackend.scala
diff --git a/yarn/src/test/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider b/resource-managers/yarn/src/test/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
similarity index 100%
rename from yarn/src/test/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
rename to resource-managers/yarn/src/test/resources/META-INF/services/org.apache.spark.deploy.yarn.security.ServiceCredentialProvider
diff --git a/yarn/src/test/resources/log4j.properties b/resource-managers/yarn/src/test/resources/log4j.properties
similarity index 100%
rename from yarn/src/test/resources/log4j.properties
rename to resource-managers/yarn/src/test/resources/log4j.properties
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/BaseYarnClusterSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManagerSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManagerSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManagerSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientDistributedCacheManagerSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ClientSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/ContainerPlacementStrategySuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ContainerPlacementStrategySuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/ContainerPlacementStrategySuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/ContainerPlacementStrategySuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnAllocatorSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnShuffleIntegrationSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnShuffleIntegrationSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnShuffleIntegrationSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnShuffleIntegrationSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/YarnSparkHadoopUtilSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManagerSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManagerSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManagerSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/ConfigurableCredentialManagerSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProviderSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProviderSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProviderSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/deploy/yarn/security/HDFSCredentialProviderSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/launcher/TestClasspathBuilder.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/launcher/TestClasspathBuilder.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/launcher/TestClasspathBuilder.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/launcher/TestClasspathBuilder.scala
diff --git a/yarn/src/test/scala/org/apache/spark/network/shuffle/ShuffleTestAccessor.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/network/shuffle/ShuffleTestAccessor.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/network/shuffle/ShuffleTestAccessor.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/network/shuffle/ShuffleTestAccessor.scala
diff --git a/yarn/src/test/scala/org/apache/spark/network/yarn/YarnShuffleServiceSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/network/yarn/YarnShuffleServiceSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/network/yarn/YarnShuffleServiceSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/network/yarn/YarnShuffleServiceSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/network/yarn/YarnTestAccessor.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/network/yarn/YarnTestAccessor.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/network/yarn/YarnTestAccessor.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/network/yarn/YarnTestAccessor.scala
diff --git a/yarn/src/test/scala/org/apache/spark/scheduler/cluster/ExtensionServiceIntegrationSuite.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/ExtensionServiceIntegrationSuite.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/scheduler/cluster/ExtensionServiceIntegrationSuite.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/ExtensionServiceIntegrationSuite.scala
diff --git a/yarn/src/test/scala/org/apache/spark/scheduler/cluster/SimpleExtensionService.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/SimpleExtensionService.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/scheduler/cluster/SimpleExtensionService.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/SimpleExtensionService.scala
diff --git a/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationAttemptId.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationAttemptId.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationAttemptId.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationAttemptId.scala
diff --git a/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationId.scala b/resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationId.scala
similarity index 100%
rename from yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationId.scala
rename to resource-managers/yarn/src/test/scala/org/apache/spark/scheduler/cluster/StubApplicationId.scala
-- 
GitLab