You are viewing a plain text version of this content. The canonical link for it is here.
Posted to submarine-dev@hadoop.apache.org by li...@apache.org on 2019/10/17 04:47:18 UTC
[hadoop-submarine] branch master updated: SUBMARINE-172. [PoC]
Split the core module to client and server module
This is an automated email from the ASF dual-hosted git repository.
liuxun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-submarine.git
The following commit(s) were added to refs/heads/master by this push:
new 90284bd SUBMARINE-172. [PoC] Split the core module to client and server module
90284bd is described below
commit 90284bde3be5e05f44f4efd2f560c70132fe8646
Author: Wanqiang Ji <wa...@gmail.com>
AuthorDate: Tue Oct 15 00:38:24 2019 +0800
SUBMARINE-172. [PoC] Split the core module to client and server module
### What is this PR for?
PoC for the SUBMARINE-154 design. Design doc link: https://docs.google.com/document/d/1vCjt2z3DoagfeaVQV0nfyWqSYLymoP53rDcPcz-YcSc
### What type of PR is it?
[Refactoring]
### Todos
### What is the Jira issue?
https://issues.apache.org/jira/browse/SUBMARINE-172
### How should this be tested?
https://travis-ci.org/jiwq/hadoop-submarine/builds/597733767
### Screenshots (if appropriate)
### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No
Author: Wanqiang Ji <wa...@gmail.com>
Closes #48 from jiwq/SUBMARINE-172 and squashes the following commits:
cfc64d9 [Wanqiang Ji] SUBMARINE-172. [PoC] Split the core module to client and server module
---
.travis.yml | 2 +-
pom.xml | 35 +--
submarine-all/pom.xml | 77 ++----
submarine-client/pom.xml | 126 +++++++++
.../apache/submarine/client/cli/AbstractCli.java | 52 ++++
.../java/org/apache/submarine/client/cli/Cli.java | 27 +-
.../apache/submarine/client/cli/CliConstants.java | 23 +-
.../org/apache/submarine/client/cli/CliUtils.java | 33 ++-
.../org/apache/submarine/client/cli/Command.java | 15 +-
.../apache/submarine/client/cli/ShowJobCli.java | 37 +--
.../submarine/client/cli/param/ConfigType.java | 15 +-
.../submarine/client/cli/param/Localization.java | 19 +-
.../client/cli/param/ParametersHolder.java | 23 +-
.../submarine/client/cli/param/Quicklink.java | 23 +-
.../submarine/client/cli/param/RunParameters.java | 33 ++-
.../client/cli/param/ShowJobParameters.java | 25 ++
.../cli/param/runjob/PyTorchRunJobParameters.java | 24 +-
.../client/cli/param/runjob/RunJobParameters.java | 42 ++-
.../param/runjob/TensorFlowRunJobParameters.java | 37 +--
.../submarine/client/cli/param/yaml/Configs.java | 15 +-
.../submarine/client/cli/param/yaml/PsRole.java | 15 +-
.../submarine/client/cli/param/yaml/Role.java | 15 +-
.../submarine/client/cli/param/yaml/Roles.java | 15 +-
.../client/cli/param/yaml/Scheduling.java | 15 +-
.../submarine/client/cli/param/yaml/Security.java | 15 +-
.../submarine/client/cli/param/yaml/Spec.java | 15 +-
.../client/cli/param/yaml/TensorBoard.java | 15 +-
.../client/cli/param/yaml/WorkerRole.java | 15 +-
.../client/cli/param/yaml/YamlConfigFile.java | 15 +-
.../client/cli/param/yaml/YamlParseException.java | 15 +-
.../client/cli/runjob/RoleParameters.java | 17 +-
.../submarine/client/cli/runjob/RunJobCli.java | 40 ++-
.../client/cli/TestShowJobCliParsing.java | 34 +--
.../submarine/client/cli/YamlConfigTestUtils.java | 15 +-
.../cli/runjob/TestRunJobCliParsingCommon.java | 28 +-
.../cli/runjob/TestRunJobCliParsingCommonYaml.java | 21 +-
.../runjob/TestRunJobCliParsingParameterized.java | 25 +-
.../pytorch/TestRunJobCliParsingPyTorch.java | 18 +-
.../pytorch/TestRunJobCliParsingPyTorchYaml.java | 22 +-
.../tensorflow/TestRunJobCliParsingTensorFlow.java | 18 +-
.../TestRunJobCliParsingTensorFlowYaml.java | 22 +-
...stRunJobCliParsingTensorFlowYamlStandalone.java | 18 +-
.../src/test/resources/core-site.xml | 0
.../src/test/resources/hdfs-site.xml | 0
.../runjob-common-yaml/empty-framework.yaml | 0
.../runjob-common-yaml/invalid-framework.yaml | 0
.../runjob-common-yaml/missing-configs.yaml | 0
.../runjob-common-yaml/missing-framework.yaml | 0
.../runjob-common-yaml/some-sections-missing.yaml | 0
.../runjob-common-yaml/test-false-values.yaml | 0
.../runjob-common-yaml/wrong-indentation.yaml | 0
.../runjob-common-yaml/wrong-property-name.yaml | 0
.../runjob-pytorch-yaml/envs-are-missing.yaml | 0
.../invalid-config-ps-section.yaml | 0
.../invalid-config-tensorboard-section.yaml | 0
.../security-principal-is-missing.yaml | 0
.../valid-config-with-overrides.yaml | 0
.../runjob-pytorch-yaml/valid-config.yaml | 0
.../runjob-pytorch-yaml/valid-gpu-config.yaml | 0
.../runjob-tensorflow-yaml/envs-are-missing.yaml | 0
.../security-principal-is-missing.yaml | 0
.../tensorboard-dockerimage-is-missing.yaml | 0
.../valid-config-with-overrides.yaml | 0
.../runjob-tensorflow-yaml/valid-config.yaml | 0
.../runjob-tensorflow-yaml/valid-gpu-config.yaml | 0
submarine-commons/commons-runtime/pom.xml | 184 +++++++++++++
.../ubuntu-16.04/Dockerfile.gpu.pytorch_latest | 0
.../src/main/docker/pytorch/build-all.sh | 0
.../with-cifar10-models/cifar10_tutorial.py | 0
.../ubuntu-16.04/Dockerfile.gpu.pytorch_latest | 0
.../base/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1 | 0
.../base/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1 | 0
.../src/main/docker/tensorflow/build-all.sh | 0
.../ubuntu-16.04/Dockerfile.cpu.tf_1.13.1 | 0
.../ubuntu-16.04/Dockerfile.gpu.tf_1.13.1 | 0
.../cifar10_estimator_tf_1.13.1/README.md | 0
.../cifar10_estimator_tf_1.13.1/cifar10.py | 0
.../cifar10_estimator_tf_1.13.1/cifar10_main.py | 0
.../cifar10_estimator_tf_1.13.1/cifar10_model.py | 0
.../cifar10_estimator_tf_1.13.1/cifar10_utils.py | 0
.../generate_cifar10_tfrecords.py | 0
.../cifar10_estimator_tf_1.13.1/model_base.py | 0
.../zeppelin-notebook-example/Dockerfile.gpu | 0
.../zeppelin-notebook-example/run_container.sh | 0
.../tensorflow/zeppelin-notebook-example/shiro.ini | 0
.../zeppelin-notebook-example/zeppelin-site.xml | 0
.../submarine/commons/runtime}/ClientContext.java | 38 +--
.../submarine/commons/runtime}/Framework.java | 17 +-
.../submarine/commons/runtime}/JobMonitor.java | 32 ++-
.../submarine/commons/runtime/JobSubmitter.java | 41 +++
.../submarine/commons/runtime}/RuntimeFactory.java | 38 +--
.../commons/runtime}/api/JobComponentStatus.java | 28 +-
.../submarine/commons/runtime/api/JobState.java | 54 ++++
.../submarine/commons/runtime}/api/JobStatus.java | 28 +-
.../submarine/commons/runtime/api/PyTorchRole.java | 43 +++
.../submarine/commons/runtime}/api/Role.java | 17 +-
.../submarine/commons/runtime}/api/Runtime.java | 17 +-
.../commons/runtime/api/TensorFlowRole.java | 46 ++++
.../submarine/commons/runtime/conf/Envs.java | 32 +++
.../runtime}/conf/SubmarineConfiguration.java | 29 ++-
.../commons/runtime/conf/SubmarineLogs.java | 36 +++
.../runtime/exception/SubmarineException.java | 26 ++
.../exception/SubmarineRuntimeException.java | 30 +++
.../runtime}/fs/DefaultRemoteDirectoryManager.java | 30 ++-
.../runtime/fs}/FSBasedSubmarineStorageImpl.java | 35 +--
.../runtime/fs}/MemorySubmarineStorage.java | 25 +-
.../runtime}/fs/RemoteDirectoryManager.java | 31 ++-
.../commons/runtime/fs/StorageKeyConstants.java | 29 +++
.../commons/runtime/fs}/SubmarineStorage.java | 31 ++-
.../commons/runtime}/param/BaseParameters.java | 33 ++-
.../submarine/commons/runtime/param/Parameter.java | 41 +++
.../commons/runtime}/resource/ResourceUtils.java | 33 ++-
.../runtime}/resource/UnitsConversionUtil.java | 21 +-
.../commons/runtime}/MockClientContext.java | 22 +-
.../runtime}/fs/MockRemoteDirectoryManager.java | 17 +-
submarine-commons/pom.xml | 40 +++
submarine-core/README.md | 51 ----
submarine-core/pom.xml | 289 ---------------------
.../apache/submarine/client/cli/AbstractCli.java | 47 ----
.../client/cli/param/ShowJobParameters.java | 18 --
.../submarine/client/cli/param/package-info.java | 19 --
.../client/cli/param/runjob/package-info.java | 20 --
.../client/cli/param/yaml/package-info.java | 19 --
.../submarine/client/cli/runjob/package-info.java | 19 --
.../java/org/apache/submarine/common/Envs.java | 27 --
.../org/apache/submarine/common/api/JobState.java | 52 ----
.../apache/submarine/common/api/PyTorchRole.java | 54 ----
.../submarine/common/api/TensorFlowRole.java | 41 ---
.../submarine/common/conf/SubmarineLogs.java | 31 ---
.../common/exception/SubmarineException.java | 21 --
.../exception/SubmarineRuntimeException.java | 25 --
.../submarine/common/resource/package-info.java | 19 --
.../submarine/runtimes/common/JobSubmitter.java | 36 ---
.../runtimes/common/StorageKeyConstants.java | 24 --
.../common/TestFSBasedSubmarineStorage.java | 73 ------
submarine-dist/pom.xml | 77 ++----
submarine-dist/src/assembly/distribution.xml | 24 +-
submarine-runtime/pom.xml | 40 ---
.../runtimes/tony/TonyRuntimeFactory.java | 55 ----
.../runtimes/tony/buider/package-info.java | 14 -
.../submarine/runtimes/tony/package-info.java | 14 -
submarine-server/pom.xml | 40 +++
submarine-server/server-submitter/pom.xml | 40 +++
.../server-submitter/submitter-yarn}/README.md | 0
.../server-submitter/submitter-yarn}/pom.xml | 15 +-
.../submarine/runtimes/tony}/JobStatusBuilder.java | 36 +--
.../submarine/runtimes/tony/TonyJobMonitor.java | 37 +--
.../submarine/runtimes/tony/TonyJobSubmitter.java | 37 +--
.../runtimes/tony/TonyRuntimeFactory.java | 61 +++++
.../apache/submarine/runtimes/tony/TonyUtils.java | 34 ++-
.../src/test/java/TestTonyUtils.java | 42 +--
.../submitter-yarnservice}/README.md | 0
.../submitter-yarnservice}/pom.xml | 15 +-
.../runtimes/yarnservice/AbstractComponent.java | 0
.../runtimes/yarnservice/AbstractServiceSpec.java | 0
.../runtimes/yarnservice/FileSystemOperations.java | 0
.../yarnservice/HadoopEnvironmentSetup.java | 0
.../runtimes/yarnservice/ServiceSpec.java | 0
.../yarnservice/ServiceSpecFileGenerator.java | 0
.../runtimes/yarnservice/ServiceWrapper.java | 0
.../yarnservice/WorkerComponentFactory.java | 0
.../yarnservice/YarnServiceJobMonitor.java | 0
.../yarnservice/YarnServiceJobSubmitter.java | 0
.../yarnservice/YarnServiceRuntimeFactory.java | 0
.../runtimes/yarnservice/YarnServiceUtils.java | 0
.../builder/JobComponentStatusBuilder.java | 0
.../yarnservice/builder/JobStatusBuilder.java | 0
.../yarnservice/command/AbstractLaunchCommand.java | 0
.../yarnservice/command/LaunchCommandFactory.java | 0
.../yarnservice/command/LaunchScriptBuilder.java | 0
.../command/PyTorchLaunchCommandFactory.java | 0
.../command/TensorFlowLaunchCommandFactory.java | 0
.../runtimes/yarnservice/command/package-info.java | 0
.../yarnservice/pytorch/PyTorchServiceSpec.java | 0
.../command/PyTorchWorkerLaunchCommand.java | 0
.../yarnservice/pytorch/command/package-info.java | 0
.../pytorch/component/PyTorchWorkerComponent.java | 0
.../pytorch/component/package-info.java | 0
.../runtimes/yarnservice/pytorch/package-info.java | 0
.../yarnservice/tensorflow/TensorFlowCommons.java | 0
.../tensorflow/TensorFlowServiceSpec.java | 0
.../command/TensorBoardLaunchCommand.java | 0
.../command/TensorFlowLaunchCommand.java | 0
.../command/TensorFlowPsLaunchCommand.java | 0
.../command/TensorFlowWorkerLaunchCommand.java | 0
.../tensorflow/command/package-info.java | 0
.../tensorflow/component/TensorBoardComponent.java | 0
.../component/TensorFlowPsComponent.java | 0
.../component/TensorFlowWorkerComponent.java | 0
.../tensorflow/component/package-info.java | 0
.../yarnservice/tensorflow/package-info.java | 0
.../apache/submarine/utils/ClassPathUtilities.java | 0
.../apache/submarine/utils/DockerUtilities.java | 0
.../submarine/utils/EnvironmentUtilities.java | 0
.../submarine/utils/KerberosPrincipalFactory.java | 0
.../java/org/apache/submarine/utils/Localizer.java | 0
.../submarine/utils/SubmarineResourceUtils.java | 0
.../org/apache/submarine/utils/ZipUtilities.java | 0
.../org/apache/submarine/utils/package-info.java | 0
.../apache/submarine/FileUtilitiesForTests.java | 0
.../cli/yarnservice/ParamBuilderForTest.java | 0
.../cli/yarnservice/TestYarnServiceRunJobCli.java | 0
.../TestYarnServiceRunJobCliCommons.java | 0
.../TestYarnServiceRunJobCliLocalization.java | 0
.../cli/yarnservice/YarnServiceCliTestUtils.java | 0
.../runtimes/yarnservice/TestServiceWrapper.java | 0
.../yarnservice/TestTFConfigGenerator.java | 0
.../command/AbstractTFLaunchCommandTestHelper.java | 0
.../command/TestLaunchCommandFactory.java | 0
.../pytorch/TestPyTorchServiceSpec.java | 0
.../command/TestTensorBoardLaunchCommand.java | 0
.../command/TestTensorFlowLaunchCommand.java | 0
.../tensorflow/component/ComponentTestCommons.java | 0
.../component/TestTensorBoardComponent.java | 0
.../component/TestTensorFlowPsComponent.java | 0
.../component/TestTensorFlowWorkerComponent.java | 0
.../submarine/utils/TestClassPathUtilities.java | 0
.../submarine/utils/TestEnvironmentUtilities.java | 0
.../utils/TestKerberosPrincipalFactory.java | 0
.../utils/TestSubmarineResourceUtils.java | 0
.../src/test/resources/core-site.xml | 0
.../src/test/resources/hdfs-site.xml | 0
222 files changed, 1896 insertions(+), 1805 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 5a96fc0..c88a454 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -40,7 +40,7 @@ env:
global:
# submarine core does not required by workbench-server integration tests
# If you need to compile Phadoop-3.1 or Phadoop-3.2, you need to add `!submarine-runtime/yarnservice-runtime` in EXCLUDE_SUBMARINE_CORE
- - EXCLUDE_SUBMARINE_CORE="\"!submarine-all,!submarine-core,!submarine-dist,!submarine-runtime/tony-runtime,!submodules/tony,!submodules/tony/tony-mini,!submodules/tony/tony-core,!submodules/tony/tony-proxy,!submodules/tony/tony-portal,!submodules/tony/tony-azkaban,!submodules/tony/tony-cli\""
+ - EXCLUDE_SUBMARINE_CORE="\"!submarine-all,!submarine-client,!submarine-commons,!submarine-commons/commons-runtime,!submarine-dist,!submarine-server/server-submitter/submitter-yarn,!submodules/tony,!submodules/tony/tony-mini,!submodules/tony/tony-core,!submodules/tony/tony-proxy,!submodules/tony/tony-portal,!submodules/tony/tony-azkaban,!submodules/tony/tony-cli\""
before_install:
- sudo service mysql restart
diff --git a/pom.xml b/pom.xml
index 63c4378..d02abbd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -104,11 +104,13 @@
</properties>
<modules>
- <module>submodules/tony</module>
- <module>submarine-core</module>
<module>submarine-all</module>
- <module>submarine-workbench</module>
+ <module>submarine-client</module>
+ <module>submarine-commons</module>
<module>submarine-dist</module>
+ <module>submarine-server</module>
+ <module>submarine-workbench</module>
+ <module>submodules/tony</module>
</modules>
<dependencyManagement>
@@ -234,10 +236,6 @@
<guava.version>27.0-jre</guava.version>
<profile-id>hadoop-3.2</profile-id>
</properties>
- <modules>
- <module>submarine-runtime/yarnservice-runtime</module>
- <module>submarine-runtime/tony-runtime</module>
- </modules>
</profile>
<!-- Default profile-->
@@ -252,10 +250,6 @@
<zookeeper.version>3.4.13</zookeeper.version>
<profile-id>hadoop-3.1</profile-id>
</properties>
- <modules>
- <module>submarine-runtime/yarnservice-runtime</module>
- <module>submarine-runtime/tony-runtime</module>
- </modules>
</profile>
<profile>
@@ -272,9 +266,6 @@
<zookeeper.version>3.4.6</zookeeper.version>
<profile-id>hadoop-2.9</profile-id>
</properties>
- <modules>
- <module>submarine-runtime/tony-runtime</module>
- </modules>
</profile>
<profile>
@@ -288,9 +279,6 @@
<zookeeper.version>3.4.6</zookeeper.version>
<profile-id>hadoop-2.7</profile-id>
</properties>
- <modules>
- <module>submarine-runtime/tony-runtime</module>
- </modules>
</profile>
<profile>
@@ -424,6 +412,19 @@
</excludes>
</configuration>
</plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.1.2</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/submarine-all/pom.xml b/submarine-all/pom.xml
index a347bce..5671945 100644
--- a/submarine-all/pom.xml
+++ b/submarine-all/pom.xml
@@ -1,17 +1,22 @@
<?xml version="1.0"?>
<!--
- Licensed 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
+ 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. See accompanying LICENSE file.
--->
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
@@ -52,7 +57,17 @@
<dependencies>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>commons-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>submarine-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>submitter-yarn</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
@@ -62,22 +77,6 @@
<id>hadoop-3.2</id>
<dependencies>
<dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>yarnservice-runtime</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>${hadoop.version}</version>
@@ -101,22 +100,6 @@
<id>hadoop-3.1</id>
<dependencies>
<dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>yarnservice-runtime</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>${hadoop.version}</version>
@@ -131,11 +114,6 @@
</activation>
<dependencies>
<dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs-client</artifactId>
<version>${hadoop.version}</version>
@@ -146,11 +124,6 @@
<profile>
<id>hadoop-2.7</id>
<dependencies>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</profile>
</profiles>
diff --git a/submarine-client/pom.xml b/submarine-client/pom.xml
new file mode 100644
index 0000000..64a6c30
--- /dev/null
+++ b/submarine-client/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>submarine</artifactId>
+ <groupId>org.apache.submarine</groupId>
+ <version>0.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>submarine-client</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <name>Submarine: Client</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>commons-runtime</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.yaml</groupId>
+ <artifactId>snakeyaml</artifactId>
+ <version>${snakeyaml.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockito.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>commons-runtime</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- Dependencies for Hadoop -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop.version}</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</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>
+ </dependencies>
+
+</project>
diff --git a/submarine-client/src/main/java/org/apache/submarine/client/cli/AbstractCli.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/AbstractCli.java
new file mode 100644
index 0000000..a15397b
--- /dev/null
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/AbstractCli.java
@@ -0,0 +1,52 @@
+/*
+ * 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.submarine.client.cli;
+
+import org.apache.commons.cli.ParseException;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.util.Tool;
+import org.apache.hadoop.yarn.exceptions.YarnException;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.exception.SubmarineException;
+
+import java.io.IOException;
+
+public abstract class AbstractCli implements Tool {
+ protected ClientContext clientContext;
+
+ public AbstractCli(ClientContext cliContext) {
+ this.clientContext = cliContext;
+ }
+
+ @Override
+ public abstract int run(String[] args)
+ throws ParseException, IOException, YarnException, InterruptedException,
+ SubmarineException;
+
+ @Override
+ public void setConf(Configuration conf) {
+ clientContext.setSubmarineConfig(conf);
+ }
+
+ @Override
+ public Configuration getConf() {
+ return clientContext.getSubmarineConfig();
+ }
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/Cli.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/Cli.java
similarity index 80%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/Cli.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/Cli.java
index 500335a..f13d208 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/Cli.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/Cli.java
@@ -1,24 +1,29 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.client.cli;
import org.apache.hadoop.conf.Configuration;
import org.apache.submarine.client.cli.runjob.RunJobCli;
-import org.apache.submarine.common.ClientContext;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
-import org.apache.submarine.runtimes.RuntimeFactory;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.RuntimeFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/CliConstants.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/CliConstants.java
similarity index 76%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/CliConstants.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/CliConstants.java
index 9e7e225..d99d56e 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/CliConstants.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/CliConstants.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.client.cli;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/CliUtils.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/CliUtils.java
similarity index 79%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/CliUtils.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/CliUtils.java
index 9637cef..d76c44c 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/CliUtils.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/CliUtils.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.client.cli;
@@ -17,8 +22,8 @@ package org.apache.submarine.client.cli;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
-import org.apache.submarine.common.fs.RemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
+import org.apache.submarine.commons.runtime.fs.RemoteDirectoryManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/Command.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/Command.java
similarity index 59%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/Command.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/Command.java
index 109e30e..f19cd54 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/Command.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/Command.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java
similarity index 75%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java
index f2917c3..651a542 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/ShowJobCli.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.client.cli;
@@ -23,10 +28,10 @@ import org.apache.commons.cli.ParseException;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.param.ShowJobParameters;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.exception.SubmarineException;
-import org.apache.submarine.runtimes.common.StorageKeyConstants;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.exception.SubmarineException;
+import org.apache.submarine.commons.runtime.fs.StorageKeyConstants;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java
similarity index 59%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java
index 00f89bd..e5996d1 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ConfigType.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/Localization.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/Localization.java
similarity index 91%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/Localization.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/Localization.java
index 9e5fcf0..18297e1 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/Localization.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/Localization.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -6,14 +6,15 @@
* 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
+ *
+ * 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.submarine.client.cli.param;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java
similarity index 95%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java
index a88d3ac..a6df357 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ParametersHolder.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param;
@@ -34,8 +37,10 @@ import org.apache.submarine.client.cli.param.yaml.Security;
import org.apache.submarine.client.cli.param.yaml.TensorBoard;
import org.apache.submarine.client.cli.param.yaml.YamlConfigFile;
import org.apache.submarine.client.cli.param.yaml.YamlParseException;
-import org.apache.submarine.client.cli.runjob.Framework;
-import org.apache.submarine.common.ClientContext;
+import org.apache.submarine.commons.runtime.param.BaseParameters;
+import org.apache.submarine.commons.runtime.Framework;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.param.Parameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -59,7 +64,7 @@ import static org.apache.submarine.client.cli.runjob.RunJobCli.YAML_PARSE_FAILED
* in the future.
* If both YAML and CLI value is found for a config, this is an error case.
*/
-public final class ParametersHolder {
+public final class ParametersHolder implements Parameter {
private static final Logger LOG =
LoggerFactory.getLogger(ParametersHolder.class);
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java
similarity index 66%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java
index 2206874..80e3c53 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/Quicklink.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.client.cli.param;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java
similarity index 66%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java
index 0de2d68..2bfbb9e 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/RunParameters.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.client.cli.param;
@@ -17,7 +22,9 @@ package org.apache.submarine.client.cli.param;
import org.apache.commons.cli.ParseException;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.CliConstants;
-import org.apache.submarine.common.ClientContext;
+import org.apache.submarine.commons.runtime.param.BaseParameters;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.param.Parameter;
import java.io.IOException;
import java.util.ArrayList;
@@ -33,14 +40,14 @@ public abstract class RunParameters extends BaseParameters {
private String queue;
@Override
- public void updateParameters(ParametersHolder parametersHolder,
- ClientContext clientContext) throws ParseException,
+ public void updateParameters(Parameter parametersHolder, ClientContext clientContext)
+ throws ParseException,
IOException, YarnException {
String savedModelPath = parametersHolder.getOptionValue(
CliConstants.SAVED_MODEL_PATH);
this.setSavedModelPath(savedModelPath);
- List<String> envVars = getEnvVars(parametersHolder);
+ List<String> envVars = getEnvVars((ParametersHolder)parametersHolder);
this.setEnvars(envVars);
String queue = parametersHolder.getOptionValue(
diff --git a/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java
new file mode 100644
index 0000000..e71b3d7
--- /dev/null
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java
@@ -0,0 +1,25 @@
+/*
+ * 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.submarine.client.cli.param;
+
+import org.apache.submarine.commons.runtime.param.BaseParameters;
+
+public class ShowJobParameters extends BaseParameters {
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java
similarity index 85%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java
index f470c8b..dbbe31a 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/PyTorchRunJobParameters.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.runjob;
@@ -24,10 +27,10 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.CliConstants;
import org.apache.submarine.client.cli.CliUtils;
-import org.apache.submarine.client.cli.param.ParametersHolder;
-import org.apache.submarine.common.ClientContext;
+import org.apache.submarine.commons.runtime.ClientContext;
import com.google.common.collect.Lists;
+import org.apache.submarine.commons.runtime.param.Parameter;
/**
* Parameters for PyTorch job.
@@ -38,8 +41,7 @@ public class PyTorchRunJobParameters extends RunJobParameters {
"cannot be defined for PyTorch jobs!";
@Override
- public void updateParameters(ParametersHolder parametersHolder,
- ClientContext clientContext)
+ public void updateParameters(Parameter parametersHolder, ClientContext clientContext)
throws ParseException, IOException, YarnException {
checkArguments(parametersHolder);
@@ -52,7 +54,7 @@ public class PyTorchRunJobParameters extends RunJobParameters {
executePostOperations(clientContext);
}
- private void checkArguments(ParametersHolder parametersHolder)
+ private void checkArguments(Parameter parametersHolder)
throws YarnException, ParseException {
if (parametersHolder.getOptionValue(CliConstants.N_PS) != null) {
throw new ParseException(getParamCannotBeDefinedErrorMessage(
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java
similarity index 86%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java
index d9e914d..32daae1 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/RunJobParameters.java
@@ -6,26 +6,15 @@
* 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.
- */
-
-/**
- * Licensed 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. See accompanying LICENSE file.
+ * 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.submarine.client.cli.param.runjob;
@@ -38,14 +27,14 @@ import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.CliConstants;
import org.apache.submarine.client.cli.CliUtils;
import org.apache.submarine.client.cli.param.Localization;
-import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.param.Quicklink;
import org.apache.submarine.client.cli.param.RunParameters;
import org.apache.submarine.client.cli.runjob.RoleParameters;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.api.TensorFlowRole;
-import org.apache.submarine.common.fs.RemoteDirectoryManager;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.param.Parameter;
+import org.apache.submarine.commons.runtime.api.TensorFlowRole;
+import org.apache.submarine.commons.runtime.fs.RemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.introspector.PropertyUtils;
@@ -77,8 +66,7 @@ public abstract class RunJobParameters extends RunParameters {
RoleParameters.createEmpty(TensorFlowRole.WORKER);
@Override
- public void updateParameters(ParametersHolder parametersHolder,
- ClientContext clientContext)
+ public void updateParameters(Parameter parametersHolder, ClientContext clientContext)
throws ParseException, IOException, YarnException {
String input = parametersHolder.getOptionValue(CliConstants.INPUT_PATH);
@@ -248,7 +236,7 @@ public abstract class RunJobParameters extends RunParameters {
}
RoleParameters getWorkerParameters(ClientContext clientContext,
- ParametersHolder parametersHolder, String input)
+ Parameter parametersHolder, String input)
throws ParseException, YarnException, IOException {
int nWorkers = getNumberOfWorkers(parametersHolder, input);
Resource workerResource =
@@ -261,7 +249,7 @@ public abstract class RunJobParameters extends RunParameters {
workerLaunchCmd, workerDockerImage, workerResource);
}
- private Resource determineWorkerResource(ParametersHolder parametersHolder,
+ private Resource determineWorkerResource(Parameter parametersHolder,
int nWorkers, ClientContext clientContext)
throws ParseException, YarnException, IOException {
if (nWorkers > 0) {
@@ -276,7 +264,7 @@ public abstract class RunJobParameters extends RunParameters {
return null;
}
- private int getNumberOfWorkers(ParametersHolder parametersHolder,
+ private int getNumberOfWorkers(Parameter parametersHolder,
String input) throws ParseException, YarnException {
int nWorkers = 1;
if (parametersHolder.getOptionValue(CliConstants.N_WORKERS) != null) {
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java
similarity index 85%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java
index 513de7a..b084a5d 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/runjob/TensorFlowRunJobParameters.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.runjob;
@@ -23,11 +26,11 @@ import org.apache.hadoop.yarn.api.records.Resource;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.CliConstants;
import org.apache.submarine.client.cli.CliUtils;
-import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.runjob.RoleParameters;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.api.TensorFlowRole;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.param.Parameter;
+import org.apache.submarine.commons.runtime.api.TensorFlowRole;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import java.io.IOException;
import java.util.List;
@@ -43,8 +46,7 @@ public class TensorFlowRunJobParameters extends RunJobParameters {
RoleParameters.createEmpty(TensorFlowRole.TENSORBOARD);
@Override
- public void updateParameters(ParametersHolder parametersHolder,
- ClientContext clientContext)
+ public void updateParameters(Parameter parametersHolder, ClientContext clientContext)
throws ParseException, IOException, YarnException {
super.updateParameters(parametersHolder, clientContext);
@@ -105,7 +107,7 @@ public class TensorFlowRunJobParameters extends RunJobParameters {
}
private RoleParameters getPSParameters(ClientContext clientContext,
- ParametersHolder parametersHolder)
+ Parameter parametersHolder)
throws YarnException, IOException, ParseException {
int nPS = getNumberOfPS(parametersHolder);
Resource psResource =
@@ -118,7 +120,7 @@ public class TensorFlowRunJobParameters extends RunJobParameters {
psDockerImage, psResource);
}
- private Resource determinePSResource(ParametersHolder parametersHolder,
+ private Resource determinePSResource(Parameter parametersHolder,
int nPS, ClientContext clientContext)
throws ParseException, YarnException, IOException {
if (nPS > 0) {
@@ -132,7 +134,7 @@ public class TensorFlowRunJobParameters extends RunJobParameters {
return null;
}
- private int getNumberOfPS(ParametersHolder parametersHolder)
+ private int getNumberOfPS(Parameter parametersHolder)
throws YarnException {
int nPS = 0;
if (parametersHolder.getOptionValue(CliConstants.N_PS) != null) {
@@ -142,9 +144,8 @@ public class TensorFlowRunJobParameters extends RunJobParameters {
return nPS;
}
- private RoleParameters getTensorBoardParameters(
- ParametersHolder parametersHolder, ClientContext clientContext)
- throws YarnException, IOException {
+ private RoleParameters getTensorBoardParameters(Parameter parametersHolder,
+ ClientContext clientContext) throws YarnException, IOException {
String tensorboardResourceStr =
parametersHolder.getOptionValue(CliConstants.TENSORBOARD_RESOURCES);
if (tensorboardResourceStr == null || tensorboardResourceStr.isEmpty()) {
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java
similarity index 86%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java
index 2a42d6e..8237484 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Configs.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java
similarity index 63%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java
index 3217237..3a9397d 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/PsRole.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java
similarity index 83%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java
index 75728f8..502885b 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Role.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java
similarity index 68%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java
index 5541829..fab6f31 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Roles.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java
similarity index 66%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java
index 3d8e535..1781444 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Scheduling.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java
similarity index 75%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java
index 2673f8e..4a7af73 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Security.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java
similarity index 73%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java
index c5738cb..a3af771 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/Spec.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java
similarity index 71%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java
index 75e2fc7..d63c3c8 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/TensorBoard.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java
similarity index 64%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java
index 734db92..1a75504 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/WorkerRole.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java
similarity index 80%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java
index a70c264..85d60a5 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlConfigFile.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java
similarity index 65%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java
index eb88745..3b222f5 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/param/yaml/YamlParseException.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java
similarity index 81%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java
index e95bee8..bda5850 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RoleParameters.java
@@ -6,18 +6,21 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob;
import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.submarine.common.api.Role;
+import org.apache.submarine.commons.runtime.api.Role;
/**
* This class encapsulates data related to a particular Role.
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java b/submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java
similarity index 91%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java
rename to submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java
index a123679..7396ddc 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java
+++ b/submarine-client/src/main/java/org/apache/submarine/client/cli/runjob/RunJobCli.java
@@ -6,26 +6,15 @@
* 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.
- */
-
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+ *
+ * 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.submarine.client.cli.runjob;
@@ -47,11 +36,12 @@ import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.yaml.YamlConfigFile;
import org.apache.submarine.client.cli.param.yaml.YamlParseException;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.exception.SubmarineException;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
-import org.apache.submarine.runtimes.common.StorageKeyConstants;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.Framework;
+import org.apache.submarine.commons.runtime.exception.SubmarineException;
+import org.apache.submarine.commons.runtime.JobMonitor;
+import org.apache.submarine.commons.runtime.JobSubmitter;
+import org.apache.submarine.commons.runtime.fs.StorageKeyConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yaml.snakeyaml.Yaml;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java
similarity index 77%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java
index 806e926..8c01a71 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/TestShowJobCliParsing.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -6,30 +6,30 @@
* 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
+ *
+ * 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.submarine.client.cli;
import org.apache.commons.cli.ParseException;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.param.ShowJobParameters;
-import org.apache.submarine.common.MockClientContext;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.common.exception.SubmarineException;
-import org.apache.submarine.runtimes.RuntimeFactory;
-import org.apache.submarine.runtimes.common.MemorySubmarineStorage;
-import org.apache.submarine.runtimes.common.StorageKeyConstants;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
+import org.apache.submarine.commons.runtime.MockClientContext;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.exception.SubmarineException;
+import org.apache.submarine.commons.runtime.RuntimeFactory;
+import org.apache.submarine.commons.runtime.fs.MemorySubmarineStorage;
+import org.apache.submarine.commons.runtime.fs.StorageKeyConstants;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java
similarity index 84%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java
index 779df05..c639ba6 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/YamlConfigTestUtils.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java
similarity index 86%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java
index 9ba0647..d32271d 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommon.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob;
import org.apache.commons.cli.MissingArgumentException;
@@ -24,12 +26,12 @@ import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
-import org.apache.submarine.common.MockClientContext;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.runtimes.RuntimeFactory;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
+import org.apache.submarine.commons.runtime.MockClientContext;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.RuntimeFactory;
+import org.apache.submarine.commons.runtime.JobMonitor;
+import org.apache.submarine.commons.runtime.JobSubmitter;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java
similarity index 93%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java
index 8c10b59..0b3b439 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingCommonYaml.java
@@ -6,12 +6,15 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob;
@@ -21,9 +24,9 @@ import org.apache.submarine.client.cli.YamlConfigTestUtils;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
import org.apache.submarine.client.cli.param.yaml.YamlParseException;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java
similarity index 90%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java
index 6f062f6..b2eb302 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/TestRunJobCliParsingParameterized.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob;
import com.google.common.collect.Lists;
import org.apache.commons.cli.ParseException;
@@ -22,10 +24,11 @@ import org.apache.submarine.client.cli.CliConstants;
import org.apache.submarine.client.cli.param.runjob.PyTorchRunJobParameters;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
-import org.apache.submarine.common.MockClientContext;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
+import org.apache.submarine.commons.runtime.Framework;
+import org.apache.submarine.commons.runtime.MockClientContext;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.JobMonitor;
+import org.apache.submarine.commons.runtime.JobSubmitter;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java
similarity index 94%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java
index 78b8b2b..ee1d7f8 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorch.java
@@ -6,22 +6,24 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob.pytorch;
import org.apache.commons.cli.ParseException;
import org.apache.submarine.client.cli.param.runjob.PyTorchRunJobParameters;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.runjob.RunJobCli;
-import org.apache.submarine.common.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
import org.apache.hadoop.yarn.util.resource.Resources;
import org.apache.submarine.client.cli.runjob.TestRunJobCliParsingCommon;
import org.junit.Before;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java
similarity index 94%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java
index 7eb340c..fcc4413 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/pytorch/TestRunJobCliParsingPyTorchYaml.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob.pytorch;
import static org.junit.Assert.assertEquals;
@@ -31,9 +33,9 @@ import org.apache.submarine.client.cli.param.runjob.PyTorchRunJobParameters;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.yaml.YamlParseException;
import org.apache.submarine.client.cli.runjob.RunJobCli;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import org.apache.hadoop.yarn.util.resource.Resources;
import org.apache.submarine.client.cli.runjob.TestRunJobCliParsingCommon;
import org.junit.After;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java
similarity index 93%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java
index c8176af..9eef4a3 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlow.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob.tensorflow;
import org.apache.commons.cli.ParseException;
@@ -22,7 +24,7 @@ import org.apache.submarine.client.cli.CliConstants;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
import org.apache.submarine.client.cli.runjob.RunJobCli;
-import org.apache.submarine.common.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
import org.apache.hadoop.yarn.util.resource.Resources;
import org.apache.submarine.client.cli.runjob.TestRunJobCliParsingCommon;
import org.junit.Before;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java
similarity index 94%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java
index 211dc2b..f334386 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYaml.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob.tensorflow;
import com.google.common.collect.ImmutableList;
@@ -23,9 +25,9 @@ import org.apache.submarine.client.cli.YamlConfigTestUtils;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
import org.apache.submarine.client.cli.runjob.RunJobCli;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import org.apache.hadoop.yarn.util.resource.Resources;
import org.apache.submarine.client.cli.runjob.TestRunJobCliParsingCommon;
import org.junit.After;
diff --git a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java
similarity index 94%
rename from submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java
rename to submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java
index f311c26..1e770db 100644
--- a/submarine-core/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java
+++ b/submarine-client/src/test/java/org/apache/submarine/client/cli/runjob/tensorflow/TestRunJobCliParsingTensorFlowYamlStandalone.java
@@ -6,15 +6,17 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob.tensorflow;
import org.apache.submarine.client.cli.param.yaml.Configs;
@@ -25,7 +27,7 @@ import org.apache.submarine.client.cli.param.yaml.Security;
import org.apache.submarine.client.cli.param.yaml.Spec;
import org.apache.submarine.client.cli.param.yaml.TensorBoard;
import org.apache.submarine.client.cli.param.yaml.YamlConfigFile;
-import org.apache.submarine.common.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
import org.apache.submarine.client.cli.YamlConfigTestUtils;
import org.junit.Before;
import org.junit.Test;
diff --git a/submarine-runtime/yarnservice-runtime/src/test/resources/core-site.xml b/submarine-client/src/test/resources/core-site.xml
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/resources/core-site.xml
rename to submarine-client/src/test/resources/core-site.xml
diff --git a/submarine-runtime/yarnservice-runtime/src/test/resources/hdfs-site.xml b/submarine-client/src/test/resources/hdfs-site.xml
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/resources/hdfs-site.xml
rename to submarine-client/src/test/resources/hdfs-site.xml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/empty-framework.yaml b/submarine-client/src/test/resources/runjob-common-yaml/empty-framework.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/empty-framework.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/empty-framework.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/invalid-framework.yaml b/submarine-client/src/test/resources/runjob-common-yaml/invalid-framework.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/invalid-framework.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/invalid-framework.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/missing-configs.yaml b/submarine-client/src/test/resources/runjob-common-yaml/missing-configs.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/missing-configs.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/missing-configs.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/missing-framework.yaml b/submarine-client/src/test/resources/runjob-common-yaml/missing-framework.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/missing-framework.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/missing-framework.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/some-sections-missing.yaml b/submarine-client/src/test/resources/runjob-common-yaml/some-sections-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/some-sections-missing.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/some-sections-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/test-false-values.yaml b/submarine-client/src/test/resources/runjob-common-yaml/test-false-values.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/test-false-values.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/test-false-values.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/wrong-indentation.yaml b/submarine-client/src/test/resources/runjob-common-yaml/wrong-indentation.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/wrong-indentation.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/wrong-indentation.yaml
diff --git a/submarine-core/src/test/resources/runjob-common-yaml/wrong-property-name.yaml b/submarine-client/src/test/resources/runjob-common-yaml/wrong-property-name.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-common-yaml/wrong-property-name.yaml
rename to submarine-client/src/test/resources/runjob-common-yaml/wrong-property-name.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/envs-are-missing.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/envs-are-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/envs-are-missing.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/envs-are-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/invalid-config-ps-section.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/invalid-config-ps-section.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/invalid-config-ps-section.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/invalid-config-ps-section.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/invalid-config-tensorboard-section.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/invalid-config-tensorboard-section.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/invalid-config-tensorboard-section.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/invalid-config-tensorboard-section.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/security-principal-is-missing.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/security-principal-is-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/security-principal-is-missing.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/security-principal-is-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/valid-config-with-overrides.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/valid-config-with-overrides.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/valid-config-with-overrides.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/valid-config-with-overrides.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/valid-config.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/valid-config.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/valid-config.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/valid-config.yaml
diff --git a/submarine-core/src/test/resources/runjob-pytorch-yaml/valid-gpu-config.yaml b/submarine-client/src/test/resources/runjob-pytorch-yaml/valid-gpu-config.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-pytorch-yaml/valid-gpu-config.yaml
rename to submarine-client/src/test/resources/runjob-pytorch-yaml/valid-gpu-config.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/envs-are-missing.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/envs-are-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/envs-are-missing.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/envs-are-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/security-principal-is-missing.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/security-principal-is-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/security-principal-is-missing.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/security-principal-is-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/tensorboard-dockerimage-is-missing.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/tensorboard-dockerimage-is-missing.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/tensorboard-dockerimage-is-missing.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/tensorboard-dockerimage-is-missing.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-config-with-overrides.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-config-with-overrides.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-config-with-overrides.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-config-with-overrides.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-config.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-config.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-config.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-config.yaml
diff --git a/submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-gpu-config.yaml b/submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-gpu-config.yaml
similarity index 100%
rename from submarine-core/src/test/resources/runjob-tensorflow-yaml/valid-gpu-config.yaml
rename to submarine-client/src/test/resources/runjob-tensorflow-yaml/valid-gpu-config.yaml
diff --git a/submarine-commons/commons-runtime/pom.xml b/submarine-commons/commons-runtime/pom.xml
new file mode 100644
index 0000000..3b5f361
--- /dev/null
+++ b/submarine-commons/commons-runtime/pom.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>submarine-commons</artifactId>
+ <groupId>org.apache.submarine</groupId>
+ <version>0.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>commons-runtime</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <name>Submarine: Commons Runtime</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>${commons-collections.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ <version>${guava.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>${commons.lang3.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </dependency>
+
+ <!-- Dependencies for Hadoop -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop.version}</version>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpcore</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</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>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-yarn-api</artifactId>
+ <version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-yarn-client</artifactId>
+ <version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-jaxrs</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-xc</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ </dependencies>
+</project>
diff --git a/submarine-core/src/main/docker/pytorch/base/ubuntu-16.04/Dockerfile.gpu.pytorch_latest b/submarine-commons/commons-runtime/src/main/docker/pytorch/base/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
similarity index 100%
rename from submarine-core/src/main/docker/pytorch/base/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
rename to submarine-commons/commons-runtime/src/main/docker/pytorch/base/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
diff --git a/submarine-core/src/main/docker/pytorch/build-all.sh b/submarine-commons/commons-runtime/src/main/docker/pytorch/build-all.sh
similarity index 100%
rename from submarine-core/src/main/docker/pytorch/build-all.sh
rename to submarine-commons/commons-runtime/src/main/docker/pytorch/build-all.sh
diff --git a/submarine-core/src/main/docker/pytorch/with-cifar10-models/cifar10_tutorial.py b/submarine-commons/commons-runtime/src/main/docker/pytorch/with-cifar10-models/cifar10_tutorial.py
similarity index 100%
rename from submarine-core/src/main/docker/pytorch/with-cifar10-models/cifar10_tutorial.py
rename to submarine-commons/commons-runtime/src/main/docker/pytorch/with-cifar10-models/cifar10_tutorial.py
diff --git a/submarine-core/src/main/docker/pytorch/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.pytorch_latest b/submarine-commons/commons-runtime/src/main/docker/pytorch/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
similarity index 100%
rename from submarine-core/src/main/docker/pytorch/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
rename to submarine-commons/commons-runtime/src/main/docker/pytorch/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.pytorch_latest
diff --git a/submarine-core/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1 b/submarine-commons/commons-runtime/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
diff --git a/submarine-core/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1 b/submarine-commons/commons-runtime/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/base/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
diff --git a/submarine-core/src/main/docker/tensorflow/build-all.sh b/submarine-commons/commons-runtime/src/main/docker/tensorflow/build-all.sh
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/build-all.sh
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/build-all.sh
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1 b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.cpu.tf_1.13.1
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1 b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/Dockerfile.gpu.tf_1.13.1
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/README.md b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/README.md
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/README.md
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/README.md
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10.py
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_main.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_main.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_main.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_main.py
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_model.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_model.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_model.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_model.py
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_utils.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_utils.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_utils.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/cifar10_utils.py
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/generate_cifar10_tfrecords.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/generate_cifar10_tfrecords.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/generate_cifar10_tfrecords.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/generate_cifar10_tfrecords.py
diff --git a/submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/model_base.py b/submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/model_base.py
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/model_base.py
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/with-cifar10-models/ubuntu-16.04/cifar10_estimator_tf_1.13.1/model_base.py
diff --git a/submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/Dockerfile.gpu b/submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/Dockerfile.gpu
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/Dockerfile.gpu
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/Dockerfile.gpu
diff --git a/submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/run_container.sh b/submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/run_container.sh
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/run_container.sh
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/run_container.sh
diff --git a/submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/shiro.ini b/submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/shiro.ini
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/shiro.ini
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/shiro.ini
diff --git a/submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/zeppelin-site.xml b/submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/zeppelin-site.xml
similarity index 100%
rename from submarine-core/src/main/docker/tensorflow/zeppelin-notebook-example/zeppelin-site.xml
rename to submarine-commons/commons-runtime/src/main/docker/tensorflow/zeppelin-notebook-example/zeppelin-site.xml
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/ClientContext.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/ClientContext.java
similarity index 59%
rename from submarine-core/src/main/java/org/apache/submarine/common/ClientContext.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/ClientContext.java
index 24b0cd4..50f87fa 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/ClientContext.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/ClientContext.java
@@ -1,26 +1,30 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.common;
+package org.apache.submarine.commons.runtime;
+import org.apache.submarine.commons.runtime.conf.SubmarineConfiguration;
+import org.apache.submarine.commons.runtime.fs.DefaultRemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.fs.RemoteDirectoryManager;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.client.api.YarnClient;
import org.apache.hadoop.yarn.conf.YarnConfiguration;
-import org.apache.submarine.common.conf.SubmarineConfiguration;
-import org.apache.submarine.common.fs.DefaultRemoteDirectoryManager;
-import org.apache.submarine.common.fs.RemoteDirectoryManager;
-import org.apache.submarine.runtimes.RuntimeFactory;
public class ClientContext {
private Configuration yarnConf = new YarnConfiguration();
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/Framework.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/Framework.java
similarity index 76%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/Framework.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/Framework.java
index d76a404..efe974b 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/Framework.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/Framework.java
@@ -6,15 +6,18 @@
* 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.
+ *
+ * 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.submarine.client.cli.runjob;
+package org.apache.submarine.commons.runtime;
import com.google.common.collect.Lists;
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobMonitor.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobMonitor.java
similarity index 66%
rename from submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobMonitor.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobMonitor.java
index d5ef8cd..ca6bfc6 100644
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobMonitor.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobMonitor.java
@@ -1,24 +1,28 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.runtimes.common;
+package org.apache.submarine.commons.runtime;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.api.JobState;
-import org.apache.submarine.common.api.JobStatus;
+import org.apache.submarine.commons.runtime.api.JobState;
+import org.apache.submarine.commons.runtime.api.JobStatus;
import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.common.exception.SubmarineException;
+import org.apache.submarine.commons.runtime.exception.SubmarineException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobSubmitter.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobSubmitter.java
new file mode 100644
index 0000000..db59261
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/JobSubmitter.java
@@ -0,0 +1,41 @@
+/*
+ * 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.submarine.commons.runtime;
+
+import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.exceptions.YarnException;
+import org.apache.submarine.commons.runtime.param.Parameter;
+
+import java.io.IOException;
+
+/**
+ * Submit job to cluster master.
+ */
+public interface JobSubmitter {
+ /**
+ * Submit a job to cluster.
+ * @param parameters run job parameters
+ * @return applicationId when successfully submitted
+ * @throws YarnException for issues while contacting YARN daemons
+ * @throws IOException for other issues.
+ */
+ ApplicationId submitJob(Parameter parameters)
+ throws IOException, YarnException;
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/RuntimeFactory.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/RuntimeFactory.java
similarity index 70%
rename from submarine-core/src/main/java/org/apache/submarine/runtimes/RuntimeFactory.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/RuntimeFactory.java
index ca2d470..f7f1b81 100644
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/RuntimeFactory.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/RuntimeFactory.java
@@ -1,27 +1,29 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.runtimes;
+package org.apache.submarine.commons.runtime;
import com.google.common.annotations.VisibleForTesting;
import org.apache.hadoop.conf.Configuration;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.conf.SubmarineConfiguration;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
+import org.apache.submarine.commons.runtime.conf.SubmarineConfiguration;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
import java.lang.reflect.InvocationTargetException;
@@ -52,8 +54,8 @@ public abstract class RuntimeFactory {
+ " not instance of " + RuntimeFactory.class.getCanonicalName());
}
} catch (ClassNotFoundException | IllegalAccessException |
- InstantiationException | NoSuchMethodException |
- InvocationTargetException e) {
+ InstantiationException | NoSuchMethodException |
+ InvocationTargetException e) {
throw new SubmarineRuntimeException(
"Could not instantiate RuntimeFactory: " + runtimeClass, e);
}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/JobComponentStatus.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobComponentStatus.java
similarity index 62%
rename from submarine-core/src/main/java/org/apache/submarine/common/api/JobComponentStatus.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobComponentStatus.java
index 5621582..bed1ca6 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/JobComponentStatus.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobComponentStatus.java
@@ -1,21 +1,23 @@
/*
- * 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
+ * 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
+ * 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.
+ * 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.submarine.common.api;
+package org.apache.submarine.commons.runtime.api;
/**
* Status of component of training job
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobState.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobState.java
new file mode 100644
index 0000000..4db2e9c
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobState.java
@@ -0,0 +1,54 @@
+/*
+ * 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.submarine.commons.runtime.api;
+
+/**
+ * State of training job
+ */
+public enum JobState {
+ /**
+ * Job accepted by scheduler and start running
+ */
+ RUNNING,
+
+ /**
+ * Job killed by user
+ */
+ KILLED,
+
+ /**
+ * Job failed
+ */
+ FAILED,
+
+ /**
+ * Job succeeded
+ */
+ SUCCEEDED,
+
+ /**
+ * Job paused by user
+ */
+ PAUSED;
+
+ public static boolean isFinal(JobState state) {
+ return state == KILLED || state == SUCCEEDED || state == FAILED;
+ }
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/JobStatus.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobStatus.java
similarity index 66%
rename from submarine-core/src/main/java/org/apache/submarine/common/api/JobStatus.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobStatus.java
index 9a4d036..46833e1 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/JobStatus.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/JobStatus.java
@@ -1,21 +1,23 @@
/*
- * 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
+ * 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
+ * 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.
+ * 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.submarine.common.api;
+package org.apache.submarine.commons.runtime.api;
import java.io.PrintStream;
import java.time.LocalDateTime;
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/PyTorchRole.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/PyTorchRole.java
new file mode 100644
index 0000000..72ba8bf
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/PyTorchRole.java
@@ -0,0 +1,43 @@
+/*
+ * 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.submarine.commons.runtime.api;
+
+/**
+ * Enum to represent a PyTorch Role.
+ */
+public enum PyTorchRole implements Role {
+ PRIMARY_WORKER("master"),
+ WORKER("worker");
+
+ private String compName;
+
+ PyTorchRole(String compName) {
+ this.compName = compName;
+ }
+
+ public String getComponentName() {
+ return compName;
+ }
+
+ @Override
+ public String getName() {
+ return name();
+ }
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/Role.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Role.java
similarity index 55%
rename from submarine-core/src/main/java/org/apache/submarine/common/api/Role.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Role.java
index 3764a7e..7db4d32 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/Role.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Role.java
@@ -6,15 +6,18 @@
* 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.
+ *
+ * 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.submarine.common.api;
+package org.apache.submarine.commons.runtime.api;
/**
* Interface for a Role.
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/Runtime.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Runtime.java
similarity index 75%
rename from submarine-core/src/main/java/org/apache/submarine/common/api/Runtime.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Runtime.java
index 3244f33..9229ff9 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/Runtime.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/Runtime.java
@@ -6,15 +6,18 @@
* 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.
+ *
+ * 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.submarine.common.api;
+package org.apache.submarine.commons.runtime.api;
import com.google.common.collect.Lists;
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/TensorFlowRole.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/TensorFlowRole.java
new file mode 100644
index 0000000..f8fb081
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/api/TensorFlowRole.java
@@ -0,0 +1,46 @@
+/*
+ * 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.submarine.commons.runtime.api;
+
+/**
+ * Enum to represent a TensorFlow Role.
+ */
+public enum TensorFlowRole implements Role {
+ PRIMARY_WORKER("master"),
+ WORKER("worker"),
+ PS("ps"),
+ TENSORBOARD("tensorboard");
+
+ private String compName;
+
+ TensorFlowRole(String compName) {
+ this.compName = compName;
+ }
+
+ @Override
+ public String getComponentName() {
+ return compName;
+ }
+
+ @Override
+ public String getName() {
+ return name();
+ }
+}
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/Envs.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/Envs.java
new file mode 100644
index 0000000..41eb79b
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/Envs.java
@@ -0,0 +1,32 @@
+/*
+ * 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.submarine.commons.runtime.conf;
+
+public class Envs {
+ public static final String TASK_TYPE_ENV = "_TASK_TYPE";
+ public static final String TASK_INDEX_ENV = "_TASK_INDEX";
+
+ /*
+ * HDFS/HADOOP-related configs
+ */
+ public static final String HADOOP_HDFS_HOME = "HADOOP_HDFS_HOME";
+ public static final String JAVA_HOME = "JAVA_HOME";
+ public static final String HADOOP_CONF_DIR = "HADOOP_CONF_DIR";
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineConfiguration.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineConfiguration.java
similarity index 67%
rename from submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineConfiguration.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineConfiguration.java
index b455138..9daefd6 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineConfiguration.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineConfiguration.java
@@ -1,18 +1,23 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.common.conf;
+package org.apache.submarine.commons.runtime.conf;
import org.apache.hadoop.conf.Configuration;
@@ -52,10 +57,6 @@ public class SubmarineConfiguration extends Configuration {
}
}
- /*
- * Runtime of submarine
- */
-
private static final String PREFIX = "submarine.";
public static final String RUNTIME_CLASS = PREFIX + "runtime.class";
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineLogs.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineLogs.java
new file mode 100644
index 0000000..7fa2998
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/conf/SubmarineLogs.java
@@ -0,0 +1,36 @@
+/*
+ * 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.submarine.commons.runtime.conf;
+
+public class SubmarineLogs {
+ private static volatile boolean verbose = false;
+
+ public static boolean isVerbose() {
+ return SubmarineLogs.verbose;
+ }
+
+ public static void verboseOn() {
+ SubmarineLogs.verbose = true;
+ }
+
+ public static void verboseOff() {
+ SubmarineLogs.verbose = false;
+ }
+}
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineException.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineException.java
new file mode 100644
index 0000000..b7fe356
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineException.java
@@ -0,0 +1,26 @@
+/*
+ * 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.submarine.commons.runtime.exception;
+
+public class SubmarineException extends Exception {
+ public SubmarineException(String msg) {
+ super(msg);
+ }
+}
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineRuntimeException.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineRuntimeException.java
new file mode 100644
index 0000000..15eb509
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/exception/SubmarineRuntimeException.java
@@ -0,0 +1,30 @@
+/*
+ * 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.submarine.commons.runtime.exception;
+
+public class SubmarineRuntimeException extends RuntimeException {
+ public SubmarineRuntimeException(String s) {
+ super(s);
+ }
+
+ public SubmarineRuntimeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/fs/DefaultRemoteDirectoryManager.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/DefaultRemoteDirectoryManager.java
similarity index 82%
rename from submarine-core/src/main/java/org/apache/submarine/common/fs/DefaultRemoteDirectoryManager.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/DefaultRemoteDirectoryManager.java
index bc200c8..52e9fab 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/fs/DefaultRemoteDirectoryManager.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/DefaultRemoteDirectoryManager.java
@@ -1,26 +1,30 @@
-/**
- * Licensed 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
+/*
+ * 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. See accompanying LICENSE file.
+ * 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.submarine.common.fs;
+package org.apache.submarine.commons.runtime.fs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;
-import org.apache.submarine.client.cli.CliConstants;
-import org.apache.submarine.common.ClientContext;
+import org.apache.submarine.commons.runtime.ClientContext;
import java.io.File;
import java.io.IOException;
@@ -60,7 +64,7 @@ public class DefaultRemoteDirectoryManager implements RemoteDirectoryManager {
public Path getJobCheckpointDir(String jobName, boolean create)
throws IOException {
Path jobDir = new Path(getJobStagingArea(jobName, create),
- CliConstants.CHECKPOINT_PATH);
+ "checkpoint_path");
if (create) {
createFolderIfNotExist(jobDir);
}
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/FSBasedSubmarineStorageImpl.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/FSBasedSubmarineStorageImpl.java
similarity index 74%
rename from submarine-core/src/main/java/org/apache/submarine/runtimes/common/FSBasedSubmarineStorageImpl.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/FSBasedSubmarineStorageImpl.java
index 2aabfbe..befb8c9 100644
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/FSBasedSubmarineStorageImpl.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/FSBasedSubmarineStorageImpl.java
@@ -1,25 +1,28 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.common;
+package org.apache.submarine.commons.runtime.fs;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.Path;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.fs.RemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.ClientContext;
import java.io.IOException;
import java.io.ObjectInput;
diff --git a/submarine-core/src/test/java/org/apache/submarine/runtimes/common/MemorySubmarineStorage.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/MemorySubmarineStorage.java
similarity index 75%
rename from submarine-core/src/test/java/org/apache/submarine/runtimes/common/MemorySubmarineStorage.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/MemorySubmarineStorage.java
index a72bb02..73ef557 100644
--- a/submarine-core/src/test/java/org/apache/submarine/runtimes/common/MemorySubmarineStorage.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/MemorySubmarineStorage.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -6,17 +6,18 @@
* 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
+ *
+ * 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.submarine.runtimes.common;
+package org.apache.submarine.commons.runtime.fs;
import java.io.IOException;
import java.util.HashMap;
@@ -45,7 +46,7 @@ public class MemorySubmarineStorage extends SubmarineStorage {
@Override
public synchronized void addNewModel(String modelName, String version,
- Map<String, String> modelInfo) throws IOException {
+ Map<String, String> modelInfo) throws IOException {
if (!modelsInfo.containsKey(modelName)) {
modelsInfo.put(modelName, new HashMap<>());
}
@@ -54,7 +55,7 @@ public class MemorySubmarineStorage extends SubmarineStorage {
@Override
public synchronized Map<String, String> getModelInfoByName(String modelName,
- String version) throws IOException {
+ String version) throws IOException {
boolean notFound = false;
Map<String, String> info = null;
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/fs/RemoteDirectoryManager.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/RemoteDirectoryManager.java
similarity index 53%
rename from submarine-core/src/main/java/org/apache/submarine/common/fs/RemoteDirectoryManager.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/RemoteDirectoryManager.java
index 70d5340..b5baa81 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/fs/RemoteDirectoryManager.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/RemoteDirectoryManager.java
@@ -1,18 +1,23 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.common.fs;
+package org.apache.submarine.commons.runtime.fs;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/StorageKeyConstants.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/StorageKeyConstants.java
new file mode 100644
index 0000000..3c04cc7
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/StorageKeyConstants.java
@@ -0,0 +1,29 @@
+/*
+ * 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.submarine.commons.runtime.fs;
+
+public class StorageKeyConstants {
+ public static final String JOB_NAME = "JOB_NAME";
+ public static final String JOB_RUN_ARGS = "JOB_RUN_ARGS";
+ public static final String APPLICATION_ID = "APPLICATION_ID";
+ public static final String CHECKPOINT_PATH = "CHECKPOINT_PATH";
+ public static final String INPUT_PATH = "INPUT_PATH";
+ public static final String SAVED_MODEL_PATH = "SAVED_MODEL_PATH";
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/SubmarineStorage.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/SubmarineStorage.java
similarity index 58%
rename from submarine-core/src/main/java/org/apache/submarine/runtimes/common/SubmarineStorage.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/SubmarineStorage.java
index a09a73a..6738c27 100644
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/SubmarineStorage.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/fs/SubmarineStorage.java
@@ -1,18 +1,23 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.common;
+package org.apache.submarine.commons.runtime.fs;
import java.io.IOException;
import java.util.Map;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/BaseParameters.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/BaseParameters.java
similarity index 50%
rename from submarine-core/src/main/java/org/apache/submarine/client/cli/param/BaseParameters.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/BaseParameters.java
index 82cba30..85c565e 100644
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/BaseParameters.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/BaseParameters.java
@@ -1,3 +1,22 @@
+/*
+ * 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.
+ */
+
/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,13 +31,12 @@
* limitations under the License. See accompanying LICENSE file.
*/
-package org.apache.submarine.client.cli.param;
+package org.apache.submarine.commons.runtime.param;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
import org.apache.commons.cli.ParseException;
import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.client.cli.CliConstants;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.conf.SubmarineLogs;
import java.io.IOException;
@@ -28,15 +46,14 @@ import java.io.IOException;
public abstract class BaseParameters {
private String name;
- public void updateParameters(ParametersHolder parametersHolder,
- ClientContext clientContext)
+ public void updateParameters(Parameter parameter, ClientContext clientContext)
throws ParseException, IOException, YarnException {
- String name = parametersHolder.getOptionValue(CliConstants.NAME);
+ String name = parameter.getOptionValue("name");
if (name == null) {
throw new ParseException("--name is absent");
}
- if (parametersHolder.hasOption(CliConstants.VERBOSE)) {
+ if (parameter.hasOption("verbose")) {
SubmarineLogs.verboseOn();
}
diff --git a/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/Parameter.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/Parameter.java
new file mode 100644
index 0000000..f52b0e6
--- /dev/null
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/param/Parameter.java
@@ -0,0 +1,41 @@
+/*
+ * 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.submarine.commons.runtime.param;
+
+import org.apache.hadoop.yarn.exceptions.YarnException;
+import org.apache.submarine.commons.runtime.Framework;
+
+import java.util.List;
+
+public interface Parameter {
+ /**
+ * Get the ML framework
+ * @return Framework
+ */
+ Framework getFramework();
+
+ BaseParameters getParameters();
+
+ String getOptionValue(String option) throws YarnException;
+
+ boolean hasOption(String option);
+
+ List<String> getOptionValues(String option) throws YarnException;
+}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/resource/ResourceUtils.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/ResourceUtils.java
similarity index 92%
rename from submarine-core/src/main/java/org/apache/submarine/common/resource/ResourceUtils.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/ResourceUtils.java
index 2d659a5..aa88e26 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/resource/ResourceUtils.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/ResourceUtils.java
@@ -1,22 +1,27 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.common.resource;
+package org.apache.submarine.commons.runtime.resource;
+import org.apache.submarine.commons.runtime.exception.SubmarineRuntimeException;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.yarn.api.records.Resource;
-import org.apache.submarine.common.exception.SubmarineRuntimeException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/resource/UnitsConversionUtil.java b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/UnitsConversionUtil.java
similarity index 92%
rename from submarine-core/src/main/java/org/apache/submarine/common/resource/UnitsConversionUtil.java
rename to submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/UnitsConversionUtil.java
index 8fe0add..96427fe 100644
--- a/submarine-core/src/main/java/org/apache/submarine/common/resource/UnitsConversionUtil.java
+++ b/submarine-commons/commons-runtime/src/main/java/org/apache/submarine/commons/runtime/resource/UnitsConversionUtil.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -6,17 +6,18 @@
* 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.
+ *
+ * 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.submarine.common.resource;
+package org.apache.submarine.commons.runtime.resource;
import java.util.Arrays;
import java.util.HashSet;
diff --git a/submarine-core/src/test/java/org/apache/submarine/common/MockClientContext.java b/submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/MockClientContext.java
similarity index 57%
rename from submarine-core/src/test/java/org/apache/submarine/common/MockClientContext.java
rename to submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/MockClientContext.java
index 2330792..5f7aa16 100644
--- a/submarine-core/src/test/java/org/apache/submarine/common/MockClientContext.java
+++ b/submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/MockClientContext.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -7,19 +7,21 @@
* "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
+ * 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.
+ * 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.submarine.common;
+package org.apache.submarine.commons.runtime;
-import org.apache.submarine.common.fs.MockRemoteDirectoryManager;
-import org.apache.submarine.common.fs.RemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.fs.MockRemoteDirectoryManager;
+import org.apache.submarine.commons.runtime.fs.RemoteDirectoryManager;
public class MockClientContext extends ClientContext {
diff --git a/submarine-core/src/test/java/org/apache/submarine/common/fs/MockRemoteDirectoryManager.java b/submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/fs/MockRemoteDirectoryManager.java
similarity index 92%
rename from submarine-core/src/test/java/org/apache/submarine/common/fs/MockRemoteDirectoryManager.java
rename to submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/fs/MockRemoteDirectoryManager.java
index aa1b340..00bfc02 100644
--- a/submarine-core/src/test/java/org/apache/submarine/common/fs/MockRemoteDirectoryManager.java
+++ b/submarine-commons/commons-runtime/src/test/java/org/apache/submarine/commons/runtime/fs/MockRemoteDirectoryManager.java
@@ -1,4 +1,4 @@
-/**
+/*
* 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
@@ -7,16 +7,17 @@
* "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
+ * 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.
+ * 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.submarine.common.fs;
+package org.apache.submarine.commons.runtime.fs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
diff --git a/submarine-commons/pom.xml b/submarine-commons/pom.xml
new file mode 100644
index 0000000..f94455d
--- /dev/null
+++ b/submarine-commons/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>submarine</artifactId>
+ <groupId>org.apache.submarine</groupId>
+ <version>0.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>submarine-commons</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Submarine: Commons</name>
+
+ <modules>
+ <module>commons-runtime</module>
+ </modules>
+
+</project>
diff --git a/submarine-core/README.md b/submarine-core/README.md
deleted file mode 100644
index 0d089cb..0000000
--- a/submarine-core/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-<!---
- Licensed 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. See accompanying LICENSE file.
--->
-
-# Overview
-
-```$xslt
- _ _
- | | (_)
- ___ _ _ | |__ _ __ ___ __ _ _ __ _ _ __ ___
- / __|| | | || '_ \ | '_ ` _ \ / _` || '__|| || '_ \ / _ \
- \__ \| |_| || |_) || | | | | || (_| || | | || | | || __/
- |___/ \__,_||_.__/ |_| |_| |_| \__,_||_| |_||_| |_| \___|
-
- ?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~|^"~~~~~~~~~~~~~~~~~~~~~~~~~o~~~~~~~~~~~
- o | o __o
- o | o |X__>
- ___o | __o
- (X___>-- __|__ |X__> o
- | \ __o
- | \ |X__>
- _______________________|_______\________________
- < \____________ _
- \ \ (_)
- \ O O O >=)
- \__________________________________________________________/ (_)
-```
-
-Submarine is a project which allows infra engineer / data scientist to run
-*unmodified* Tensorflow or PyTorch programs on YARN or Kubernetes.
-
-Goals of Submarine:
-- It allows jobs easy access data/models in HDFS and other storages.
-- Can launch services to serve Tensorflow/PyTorch models.
-- Support run distributed Tensorflow jobs with simple configs.
-- Support run user-specified Docker images.
-- Support specify GPU and other resources.
-- Support launch tensorboard for training jobs if user specified.
-- Support customized DNS name for roles (like tensorboard.$user.$domain:6006)
-
diff --git a/submarine-core/pom.xml b/submarine-core/pom.xml
deleted file mode 100644
index 7595c3f..0000000
--- a/submarine-core/pom.xml
+++ /dev/null
@@ -1,289 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed 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. See accompanying LICENSE file.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
- https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.submarine</groupId>
- <artifactId>submarine</artifactId>
- <version>0.3.0-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
- <artifactId>submarine-core</artifactId>
- <version>0.3.0-SNAPSHOT</version>
- <name>Submarine: Core</name>
-
- <properties>
- <!-- Needed for generating FindBugs warnings using parent pom -->
- <!--yarn.basedir>${project.parent.parent.basedir}</yarn.basedir-->
- </properties>
-
- <dependencies>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>${commons.logging.version}</version>
- </dependency>
- <dependency>
- <groupId>commons-cli</groupId>
- <artifactId>commons-cli</artifactId>
- <version>${commons.cli.version}</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>${commons.io.version}</version>
- </dependency>
- <dependency>
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>${snakeyaml.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commons.lang3.version}</version>
- </dependency>
-
- <!-- Dependencies for Hadoop commons -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <version>${hadoop.version}</version>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</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>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </dependency>
- <dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>${commons-collections.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-yarn-api</artifactId>
- <version>${hadoop.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-yarn-common</artifactId>
- <version>${hadoop.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>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>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.tukaani</groupId>
- <artifactId>xz</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-client</artifactId>
- <version>${hadoop.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-yarn-common</artifactId>
- <version>${hadoop.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- <scope>compile</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <version>${plugin.jar.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>jar</goal>
- </goals>
- <!-- strictly speaking, the unit test is really a regression test. It
- needs the main jar to be available to be able to run. -->
- <phase>test-compile</phase>
- </execution>
- </executions>
- <configuration>
- <archive>
- <manifest>
- <mainClass>org.apache.submarine.client.cli.Cli</mainClass>
- </manifest>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <environmentVariables>
- <JAVA_HOME>${java.home}</JAVA_HOME>
- </environmentVariables>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>test-jar</goal>
- </goals>
- <phase>test-compile</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <configuration>
- <skip>false</skip>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-enforcer-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
-
-</project>
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/AbstractCli.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/AbstractCli.java
deleted file mode 100644
index f314e29..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/AbstractCli.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.client.cli;
-
-import org.apache.commons.cli.ParseException;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.util.Tool;
-import org.apache.submarine.common.ClientContext;
-import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.common.exception.SubmarineException;
-
-import java.io.IOException;
-
-public abstract class AbstractCli implements Tool {
- protected ClientContext clientContext;
-
- public AbstractCli(ClientContext cliContext) {
- this.clientContext = cliContext;
- }
-
- @Override
- public abstract int run(String[] args)
- throws ParseException, IOException, YarnException, InterruptedException,
- SubmarineException;
-
- @Override
- public void setConf(Configuration conf) {
- clientContext.setSubmarineConfig(conf);
- }
-
- @Override
- public Configuration getConf() {
- return clientContext.getSubmarineConfig();
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java
deleted file mode 100644
index da9dc07..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/ShowJobParameters.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.client.cli.param;
-
-public class ShowJobParameters extends BaseParameters {
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/package-info.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/param/package-info.java
deleted file mode 100644
index e76de7c..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/package-info.java
+++ /dev/null
@@ -1,19 +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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.submarine.client.cli.param;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/package-info.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/package-info.java
deleted file mode 100644
index 20e1de8..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/runjob/package-info.java
+++ /dev/null
@@ -1,20 +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.
- */
-/**
- * This package contains classes that hold run job parameters for
- * TensorFlow / PyTorch jobs.
- */
-package org.apache.submarine.client.cli.param.runjob;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/package-info.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/package-info.java
deleted file mode 100644
index cd411c3..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/param/yaml/package-info.java
+++ /dev/null
@@ -1,19 +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.
- */
-/**
- * This package contains value classes for the YAML parser.
- */
-package org.apache.submarine.client.cli.param.yaml;
diff --git a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/package-info.java b/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/package-info.java
deleted file mode 100644
index 69d7bc0..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/client/cli/runjob/package-info.java
+++ /dev/null
@@ -1,19 +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.
- */
-/**
- * This package contains classes that are related to the run job command.
- */
-package org.apache.submarine.client.cli.runjob;
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/Envs.java b/submarine-core/src/main/java/org/apache/submarine/common/Envs.java
deleted file mode 100644
index d115eff..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/Envs.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common;
-
-public class Envs {
- public static final String TASK_TYPE_ENV = "_TASK_TYPE";
- public static final String TASK_INDEX_ENV = "_TASK_INDEX";
-
- /*
- * HDFS/HADOOP-related configs
- */
- public static final String HADOOP_HDFS_HOME = "HADOOP_HDFS_HOME";
- public static final String JAVA_HOME = "JAVA_HOME";
- public static final String HADOOP_CONF_DIR = "HADOOP_CONF_DIR";
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/JobState.java b/submarine-core/src/main/java/org/apache/submarine/common/api/JobState.java
deleted file mode 100644
index ec3ff80..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/JobState.java
+++ /dev/null
@@ -1,52 +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.submarine.common.api;
-
-/**
- * State of training job
- */
-public enum JobState {
- /**
- * Job accepted by scheduler and start running
- */
- RUNNING,
-
- /**
- * Job killed by user
- */
- KILLED,
-
- /**
- * Job failed
- */
- FAILED,
-
- /**
- * Job succeeded
- */
- SUCCEEDED,
-
- /**
- * Job paused by user
- */
- PAUSED;
-
- public static boolean isFinal(JobState state) {
- return state == KILLED || state == SUCCEEDED || state == FAILED;
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/PyTorchRole.java b/submarine-core/src/main/java/org/apache/submarine/common/api/PyTorchRole.java
deleted file mode 100644
index b1ccc2d..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/PyTorchRole.java
+++ /dev/null
@@ -1,54 +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.
- */
-
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common.api;
-
-/**
- * Enum to represent a PyTorch Role.
- */
-public enum PyTorchRole implements Role {
- PRIMARY_WORKER("master"),
- WORKER("worker");
-
- private String compName;
-
- PyTorchRole(String compName) {
- this.compName = compName;
- }
-
- public String getComponentName() {
- return compName;
- }
-
- @Override
- public String getName() {
- return name();
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/api/TensorFlowRole.java b/submarine-core/src/main/java/org/apache/submarine/common/api/TensorFlowRole.java
deleted file mode 100644
index cccb609..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/api/TensorFlowRole.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common.api;
-
-/**
- * Enum to represent a TensorFlow Role.
- */
-public enum TensorFlowRole implements Role {
- PRIMARY_WORKER("master"),
- WORKER("worker"),
- PS("ps"),
- TENSORBOARD("tensorboard");
-
- private String compName;
-
- TensorFlowRole(String compName) {
- this.compName = compName;
- }
-
- @Override
- public String getComponentName() {
- return compName;
- }
-
- @Override
- public String getName() {
- return name();
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineLogs.java b/submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineLogs.java
deleted file mode 100644
index ef3b53f..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/conf/SubmarineLogs.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common.conf;
-
-public class SubmarineLogs {
- private static volatile boolean verbose = false;
-
- public static boolean isVerbose() {
- return SubmarineLogs.verbose;
- }
-
- public static void verboseOn() {
- SubmarineLogs.verbose = true;
- }
-
- public static void verboseOff() {
- SubmarineLogs.verbose = false;
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineException.java b/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineException.java
deleted file mode 100644
index e39937f..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineException.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common.exception;
-
-public class SubmarineException extends Exception {
- public SubmarineException(String msg) {
- super(msg);
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineRuntimeException.java b/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineRuntimeException.java
deleted file mode 100644
index 2baaca9..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/exception/SubmarineRuntimeException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.common.exception;
-
-public class SubmarineRuntimeException extends RuntimeException {
- public SubmarineRuntimeException(String s) {
- super(s);
- }
-
- public SubmarineRuntimeException(String message, Throwable cause) {
- super(message, cause);
- }
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/common/resource/package-info.java b/submarine-core/src/main/java/org/apache/submarine/common/resource/package-info.java
deleted file mode 100644
index 9dc8036..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/common/resource/package-info.java
+++ /dev/null
@@ -1,19 +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.
- */
-/**
- * This package contains resource utility classes.
- */
-package org.apache.submarine.common.resource;
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobSubmitter.java b/submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobSubmitter.java
deleted file mode 100644
index 020fd79..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/JobSubmitter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.runtimes.common;
-
-import org.apache.hadoop.yarn.api.records.ApplicationId;
-import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.client.cli.param.ParametersHolder;
-
-import java.io.IOException;
-
-/**
- * Submit job to cluster master.
- */
-public interface JobSubmitter {
- /**
- * Submit a job to cluster.
- * @param parameters run job parameters
- * @return applicationId when successfully submitted
- * @throws YarnException for issues while contacting YARN daemons
- * @throws IOException for other issues.
- */
- ApplicationId submitJob(ParametersHolder parameters)
- throws IOException, YarnException;
-}
diff --git a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/StorageKeyConstants.java b/submarine-core/src/main/java/org/apache/submarine/runtimes/common/StorageKeyConstants.java
deleted file mode 100644
index 6195f63..0000000
--- a/submarine-core/src/main/java/org/apache/submarine/runtimes/common/StorageKeyConstants.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.runtimes.common;
-
-public class StorageKeyConstants {
- public static final String JOB_NAME = "JOB_NAME";
- public static final String JOB_RUN_ARGS = "JOB_RUN_ARGS";
- public static final String APPLICATION_ID = "APPLICATION_ID";
- public static final String CHECKPOINT_PATH = "CHECKPOINT_PATH";
- public static final String INPUT_PATH = "INPUT_PATH";
- public static final String SAVED_MODEL_PATH = "SAVED_MODEL_PATH";
-}
diff --git a/submarine-core/src/test/java/org/apache/submarine/runtimes/common/TestFSBasedSubmarineStorage.java b/submarine-core/src/test/java/org/apache/submarine/runtimes/common/TestFSBasedSubmarineStorage.java
deleted file mode 100644
index 7258f03..0000000
--- a/submarine-core/src/test/java/org/apache/submarine/runtimes/common/TestFSBasedSubmarineStorage.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-
-package org.apache.submarine.runtimes.common;
-
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.fs.MockRemoteDirectoryManager;
-import org.junit.Assert;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-public class TestFSBasedSubmarineStorage {
- private Map<String, String> getMap(String prefix) {
- Map<String, String> map = new HashMap<>();
- map.put(prefix + "1", "1");
- map.put(prefix + "2", "2");
- map.put(prefix + "3", "3");
- map.put(prefix + "4", "4");
- return map;
- }
-
- private void compareMap(Map<String, String> map1, Map<String, String> map2) {
- Assert.assertEquals(map1.size(), map2.size());
- for (String k : map1.keySet()) {
- Assert.assertEquals(map1.get(k), map2.get(k));
- }
- }
-
- @Test
- public void testStorageOps() throws IOException {
- MockRemoteDirectoryManager remoteDirectoryManager = new MockRemoteDirectoryManager();
- ClientContext clientContext = mock(ClientContext.class);
- when(clientContext.getRemoteDirectoryManager()).thenReturn(remoteDirectoryManager);
- FSBasedSubmarineStorageImpl storage = new FSBasedSubmarineStorageImpl(
- clientContext);
- storage.addNewJob("job1", getMap("job1"));
- storage.addNewJob("job2", getMap("job2"));
- storage.addNewJob("job3", getMap("job3"));
- storage.addNewJob("job4", new HashMap<>());
- storage.addNewModel("model1", "1.0", getMap("model1_1.0"));
- storage.addNewModel("model1", "2.0.0", getMap("model1_2.0.0"));
- storage.addNewModel("model2", null, getMap("model1_default"));
- storage.addNewModel("model2", "1.0", getMap("model2_1.0"));
-
- // create a new storage and read it back.
- storage = new FSBasedSubmarineStorageImpl(
- clientContext);
- compareMap(getMap("job1"), storage.getJobInfoByName("job1"));
- compareMap(getMap("job2"), storage.getJobInfoByName("job2"));
- compareMap(getMap("job3"), storage.getJobInfoByName("job3"));
- compareMap(new HashMap<>(), storage.getJobInfoByName("job4"));
- compareMap(getMap("model1_1.0"), storage.getModelInfoByName("model1", "1.0"));
- compareMap(getMap("model1_2.0.0"), storage.getModelInfoByName("model1", "2.0.0"));
- compareMap(getMap("model2_1.0"), storage.getModelInfoByName("model2", "1.0"));
- }
-}
diff --git a/submarine-dist/pom.xml b/submarine-dist/pom.xml
index 35d57bb..2ca3a62 100644
--- a/submarine-dist/pom.xml
+++ b/submarine-dist/pom.xml
@@ -1,17 +1,22 @@
<?xml version="1.0"?>
<!--
- Licensed 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
+ 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. See accompanying LICENSE file.
--->
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
@@ -47,7 +52,17 @@
<dependencies>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>commons-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>submarine-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>submitter-yarn</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
@@ -56,22 +71,6 @@
<profile>
<id>hadoop-3.2</id>
<dependencies>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>yarnservice-runtime</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</profile>
@@ -79,22 +78,6 @@
<profile>
<id>hadoop-3.1</id>
<dependencies>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>yarnservice-runtime</artifactId>
- <version>${project.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.avro</groupId>
- <artifactId>avro</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</profile>
@@ -104,22 +87,12 @@
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</profile>
<profile>
<id>hadoop-2.7</id>
<dependencies>
- <dependency>
- <groupId>org.apache.submarine</groupId>
- <artifactId>tony-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
</profile>
diff --git a/submarine-dist/src/assembly/distribution.xml b/submarine-dist/src/assembly/distribution.xml
index f656237..ca248a6 100644
--- a/submarine-dist/src/assembly/distribution.xml
+++ b/submarine-dist/src/assembly/distribution.xml
@@ -25,19 +25,37 @@
<dependencySet>
<outputDirectory>/</outputDirectory>
<includes>
- <include>org.apache.submarine:submarine-core</include>
+ <include>org.apache.submarine:submarine-commons</include>
</includes>
</dependencySet>
<dependencySet>
<outputDirectory>/</outputDirectory>
<includes>
- <include>org.apache.submarine:tony-runtime</include>
+ <include>org.apache.submarine:commons-runtime</include>
</includes>
</dependencySet>
<dependencySet>
<outputDirectory>/</outputDirectory>
<includes>
- <include>org.apache.submarine:yarnservice-runtime</include>
+ <include>org.apache.submarine:submarine-client</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>org.apache.submarine:submarine-server</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>org.apache.submarine:server-submitter</include>
+ </includes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>org.apache.submarine:submitter-yarn</include>
</includes>
</dependencySet>
<dependencySet>
diff --git a/submarine-runtime/pom.xml b/submarine-runtime/pom.xml
deleted file mode 100644
index cb0e2fd..0000000
--- a/submarine-runtime/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0"?>
-<!--
- Licensed 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. See accompanying LICENSE file.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
- https://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.submarine</groupId>
- <artifactId>submarine</artifactId>
- <version>0.3.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
-
- <artifactId>submarine-runtime</artifactId>
- <version>0.3.0-SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>Submarine: Runtime Parent</name>
- <description>Submarine Runtime Parent</description>
-
- <modules>
- <module>tony-runtime</module>
- <module>yarnservice-runtime</module>
- </modules>
-
-</project>
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java b/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java
deleted file mode 100644
index 7a1e40c..0000000
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
- */
-package org.apache.submarine.runtimes.tony;
-
-import com.linkedin.tony.TonyClient;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.runtimes.RuntimeFactory;
-import org.apache.submarine.runtimes.common.FSBasedSubmarineStorageImpl;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
-
-/**
- * Implementation of RuntimeFactory with Tony Runtime
- */
-public class TonyRuntimeFactory extends RuntimeFactory {
- private TonyClient tonyClient;
- private TonyJobSubmitter submitter;
- private TonyJobMonitor monitor;
-
- public TonyRuntimeFactory(ClientContext clientContext) {
- super(clientContext);
- submitter = new TonyJobSubmitter();
- tonyClient = new TonyClient(submitter, new Configuration());
- monitor = new TonyJobMonitor(clientContext, tonyClient);
- submitter.setTonyClient(tonyClient);
- }
-
- @Override
- protected JobSubmitter internalCreateJobSubmitter() {
- return submitter;
- }
-
- @Override
- protected JobMonitor internalCreateJobMonitor() {
- return monitor;
- }
-
- @Override
- protected SubmarineStorage internalCreateSubmarineStorage() {
- return new FSBasedSubmarineStorageImpl(super.clientContext);
- }
-}
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/package-info.java b/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/package-info.java
deleted file mode 100644
index 3f3ad31..0000000
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/package-info.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-package org.apache.submarine.runtimes.tony.buider;
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/package-info.java b/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/package-info.java
deleted file mode 100644
index c592471..0000000
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/package-info.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Licensed 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. See accompanying LICENSE file.
- */
-package org.apache.submarine.runtimes.tony;
diff --git a/submarine-server/pom.xml b/submarine-server/pom.xml
new file mode 100644
index 0000000..8a49dee
--- /dev/null
+++ b/submarine-server/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>submarine</artifactId>
+ <groupId>org.apache.submarine</groupId>
+ <version>0.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>submarine-server</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Submarine: Server</name>
+
+ <modules>
+ <module>server-submitter</module>
+ </modules>
+
+</project>
diff --git a/submarine-server/server-submitter/pom.xml b/submarine-server/server-submitter/pom.xml
new file mode 100644
index 0000000..7ab50c7
--- /dev/null
+++ b/submarine-server/server-submitter/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>submarine-server</artifactId>
+ <groupId>org.apache.submarine</groupId>
+ <version>0.3.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>server-submitter</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>Submarine: Server Submitter</name>
+
+ <modules>
+ <module>submitter-yarn</module>
+ </modules>
+
+</project>
diff --git a/submarine-runtime/tony-runtime/README.md b/submarine-server/server-submitter/submitter-yarn/README.md
similarity index 100%
rename from submarine-runtime/tony-runtime/README.md
rename to submarine-server/server-submitter/submitter-yarn/README.md
diff --git a/submarine-runtime/tony-runtime/pom.xml b/submarine-server/server-submitter/submitter-yarn/pom.xml
similarity index 94%
rename from submarine-runtime/tony-runtime/pom.xml
rename to submarine-server/server-submitter/submitter-yarn/pom.xml
index 842ad31..2f45a21 100644
--- a/submarine-runtime/tony-runtime/pom.xml
+++ b/submarine-server/server-submitter/submitter-yarn/pom.xml
@@ -19,18 +19,18 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-runtime</artifactId>
+ <artifactId>server-submitter</artifactId>
<version>0.3.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
- <artifactId>tony-runtime</artifactId>
+ <artifactId>submitter-yarn</artifactId>
<version>0.3.0-SNAPSHOT</version>
- <name>Submarine: Tony Runtime</name>
+ <name>Submarine: Server Submitter YARN</name>
<dependencies>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>submarine-client</artifactId>
<version>0.3.0-SNAPSHOT</version>
<scope>compile</scope>
<optional>true</optional>
@@ -50,6 +50,11 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>${commons.logging.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.linkedin.tony</groupId>
<artifactId>tony-core</artifactId>
<version>${tony.version}</version>
@@ -194,7 +199,7 @@
</dependency>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>commons-runtime</artifactId>
<type>test-jar</type>
<scope>test</scope>
<version>0.3.0-SNAPSHOT</version>
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/JobStatusBuilder.java b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/JobStatusBuilder.java
similarity index 59%
rename from submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/JobStatusBuilder.java
rename to submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/JobStatusBuilder.java
index e5e3664..210ecd8 100644
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/buider/JobStatusBuilder.java
+++ b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/JobStatusBuilder.java
@@ -1,21 +1,27 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.tony.buider;
+
+package org.apache.submarine.runtimes.tony;
import com.linkedin.tony.rpc.TaskInfo;
-import org.apache.submarine.common.api.JobComponentStatus;
-import org.apache.submarine.common.api.JobStatus;
+import org.apache.submarine.commons.runtime.api.JobComponentStatus;
+import org.apache.submarine.commons.runtime.api.JobStatus;
import java.util.ArrayList;
import java.util.List;
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java
similarity index 50%
rename from submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java
rename to submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java
index 2801ef8..ce1466f 100644
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java
+++ b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobMonitor.java
@@ -1,26 +1,31 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.tony;
import com.linkedin.tony.TonyClient;
import com.linkedin.tony.client.TaskUpdateListener;
import com.linkedin.tony.rpc.TaskInfo;
import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.common.ClientContext;
-import org.apache.submarine.common.api.JobStatus;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.tony.buider.JobStatusBuilder;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.api.JobStatus;
+import org.apache.submarine.commons.runtime.JobMonitor;
import java.io.IOException;
import java.util.HashSet;
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java
similarity index 74%
rename from submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java
rename to submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java
index 40c3c34..1762634 100644
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java
+++ b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyJobSubmitter.java
@@ -1,15 +1,20 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.tony;
@@ -22,10 +27,10 @@ import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.yarn.api.records.ApplicationId;
import org.apache.hadoop.yarn.exceptions.YarnException;
-import org.apache.submarine.client.cli.param.ParametersHolder;
+import org.apache.submarine.commons.runtime.param.Parameter;
+import org.apache.submarine.commons.runtime.Framework;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
-import org.apache.submarine.client.cli.runjob.Framework;
-import org.apache.submarine.runtimes.common.JobSubmitter;
+import org.apache.submarine.commons.runtime.JobSubmitter;
import java.io.File;
import java.io.FileOutputStream;
@@ -47,7 +52,7 @@ public class TonyJobSubmitter implements JobSubmitter, CallbackHandler {
}
@Override
- public ApplicationId submitJob(ParametersHolder parameters)
+ public ApplicationId submitJob(Parameter parameters)
throws IOException {
if (parameters.getFramework() == Framework.PYTORCH) {
// we need to throw an exception, as ParametersHolder's parameters field
diff --git a/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java
new file mode 100644
index 0000000..42e8c9a
--- /dev/null
+++ b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyRuntimeFactory.java
@@ -0,0 +1,61 @@
+/*
+ * 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.submarine.runtimes.tony;
+
+import com.linkedin.tony.TonyClient;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.submarine.commons.runtime.ClientContext;
+import org.apache.submarine.commons.runtime.RuntimeFactory;
+import org.apache.submarine.commons.runtime.fs.FSBasedSubmarineStorageImpl;
+import org.apache.submarine.commons.runtime.JobMonitor;
+import org.apache.submarine.commons.runtime.JobSubmitter;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
+
+/**
+ * Implementation of RuntimeFactory with Tony Runtime
+ */
+public class TonyRuntimeFactory extends RuntimeFactory {
+ private TonyClient tonyClient;
+ private TonyJobSubmitter submitter;
+ private TonyJobMonitor monitor;
+
+ public TonyRuntimeFactory(ClientContext clientContext) {
+ super(clientContext);
+ submitter = new TonyJobSubmitter();
+ tonyClient = new TonyClient(submitter, new Configuration());
+ monitor = new TonyJobMonitor(clientContext, tonyClient);
+ submitter.setTonyClient(tonyClient);
+ }
+
+ @Override
+ protected JobSubmitter internalCreateJobSubmitter() {
+ return submitter;
+ }
+
+ @Override
+ protected JobMonitor internalCreateJobMonitor() {
+ return monitor;
+ }
+
+ @Override
+ protected SubmarineStorage internalCreateSubmarineStorage() {
+ return new FSBasedSubmarineStorageImpl(super.clientContext);
+ }
+}
diff --git a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java
similarity index 85%
rename from submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java
rename to submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java
index 7dfc60c..dc4c465 100644
--- a/submarine-runtime/tony-runtime/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java
+++ b/submarine-server/server-submitter/submitter-yarn/src/main/java/org/apache/submarine/runtimes/tony/TonyUtils.java
@@ -1,16 +1,22 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.submarine.runtimes.tony;
import com.linkedin.tony.Constants;
@@ -20,14 +26,14 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
-import org.apache.submarine.common.resource.ResourceUtils;
+import org.apache.submarine.commons.runtime.resource.ResourceUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
-import static org.apache.submarine.common.conf.SubmarineConfiguration.SUBMARINE_RUNTIME_APP_TYPE;
+import static org.apache.submarine.commons.runtime.conf.SubmarineConfiguration.SUBMARINE_RUNTIME_APP_TYPE;
/**
* Utilities for Tony Runtime.
diff --git a/submarine-runtime/tony-runtime/src/test/java/TestTonyUtils.java b/submarine-server/server-submitter/submitter-yarn/src/test/java/TestTonyUtils.java
similarity index 80%
rename from submarine-runtime/tony-runtime/src/test/java/TestTonyUtils.java
rename to submarine-server/server-submitter/submitter-yarn/src/test/java/TestTonyUtils.java
index ba6a82b..cbc2b5e 100644
--- a/submarine-runtime/tony-runtime/src/test/java/TestTonyUtils.java
+++ b/submarine-server/server-submitter/submitter-yarn/src/test/java/TestTonyUtils.java
@@ -1,16 +1,22 @@
-/**
- * Licensed 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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. See accompanying LICENSE file.
+/*
+ * 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.
*/
+
import com.linkedin.tony.Constants;
import com.linkedin.tony.TonyConfigurationKeys;
import org.apache.hadoop.conf.Configuration;
@@ -20,12 +26,12 @@ import org.apache.submarine.client.cli.param.ParametersHolder;
import org.apache.submarine.client.cli.param.runjob.TensorFlowRunJobParameters;
import org.apache.submarine.client.cli.runjob.RunJobCli;
import org.apache.submarine.client.cli.param.runjob.RunJobParameters;
-import org.apache.submarine.common.MockClientContext;
-import org.apache.submarine.common.conf.SubmarineLogs;
-import org.apache.submarine.runtimes.RuntimeFactory;
-import org.apache.submarine.runtimes.common.JobMonitor;
-import org.apache.submarine.runtimes.common.JobSubmitter;
-import org.apache.submarine.runtimes.common.SubmarineStorage;
+import org.apache.submarine.commons.runtime.MockClientContext;
+import org.apache.submarine.commons.runtime.conf.SubmarineLogs;
+import org.apache.submarine.commons.runtime.RuntimeFactory;
+import org.apache.submarine.commons.runtime.JobMonitor;
+import org.apache.submarine.commons.runtime.JobSubmitter;
+import org.apache.submarine.commons.runtime.fs.SubmarineStorage;
import org.apache.submarine.runtimes.tony.TonyUtils;
import org.junit.Assert;
import org.junit.Before;
diff --git a/submarine-runtime/yarnservice-runtime/README.md b/submarine-server/server-submitter/submitter-yarnservice/README.md
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/README.md
rename to submarine-server/server-submitter/submitter-yarnservice/README.md
diff --git a/submarine-runtime/yarnservice-runtime/pom.xml b/submarine-server/server-submitter/submitter-yarnservice/pom.xml
similarity index 94%
rename from submarine-runtime/yarnservice-runtime/pom.xml
rename to submarine-server/server-submitter/submitter-yarnservice/pom.xml
index 5072e62..57e9e82 100644
--- a/submarine-runtime/yarnservice-runtime/pom.xml
+++ b/submarine-server/server-submitter/submitter-yarnservice/pom.xml
@@ -21,11 +21,11 @@
<groupId>org.apache.submarine</groupId>
<artifactId>submarine-runtime</artifactId>
<version>0.3.0-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
+ <relativePath>../../../submarine-runtime/pom.xml</relativePath>
</parent>
- <artifactId>yarnservice-runtime</artifactId>
+ <artifactId>submitter-yarnservice</artifactId>
<version>0.3.0-SNAPSHOT</version>
- <name>Submarine: YARN Service Runtime</name>
+ <name>Submarine: Server Submitter YARN Service</name>
<properties>
<!-- Needed for generating FindBugs warnings using parent pom -->
@@ -141,14 +141,19 @@
</dependency>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>commons-runtime</artifactId>
<version>0.3.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.submarine</groupId>
- <artifactId>submarine-core</artifactId>
+ <artifactId>submarine-client</artifactId>
+ <version>0.3.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.submarine</groupId>
+ <artifactId>commons-runtime</artifactId>
<version>0.3.0-SNAPSHOT</version>
</dependency>
<dependency>
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractServiceSpec.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractServiceSpec.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractServiceSpec.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/AbstractServiceSpec.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/FileSystemOperations.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/FileSystemOperations.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/FileSystemOperations.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/FileSystemOperations.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/HadoopEnvironmentSetup.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/HadoopEnvironmentSetup.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/HadoopEnvironmentSetup.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/HadoopEnvironmentSetup.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpec.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpec.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpec.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpec.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpecFileGenerator.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpecFileGenerator.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpecFileGenerator.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceSpecFileGenerator.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceWrapper.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceWrapper.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceWrapper.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/ServiceWrapper.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/WorkerComponentFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/WorkerComponentFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/WorkerComponentFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/WorkerComponentFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobMonitor.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobMonitor.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobMonitor.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobMonitor.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobSubmitter.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobSubmitter.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobSubmitter.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceJobSubmitter.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceRuntimeFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceRuntimeFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceRuntimeFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceRuntimeFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceUtils.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceUtils.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceUtils.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/YarnServiceUtils.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobComponentStatusBuilder.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobComponentStatusBuilder.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobComponentStatusBuilder.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobComponentStatusBuilder.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobStatusBuilder.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobStatusBuilder.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobStatusBuilder.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/builder/JobStatusBuilder.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/AbstractLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/AbstractLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/AbstractLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/AbstractLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchCommandFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchCommandFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchCommandFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchCommandFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchScriptBuilder.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchScriptBuilder.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchScriptBuilder.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/LaunchScriptBuilder.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/PyTorchLaunchCommandFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/PyTorchLaunchCommandFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/PyTorchLaunchCommandFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/PyTorchLaunchCommandFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/TensorFlowLaunchCommandFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/TensorFlowLaunchCommandFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/TensorFlowLaunchCommandFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/TensorFlowLaunchCommandFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/command/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/command/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/PyTorchServiceSpec.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/PyTorchServiceSpec.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/PyTorchServiceSpec.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/PyTorchServiceSpec.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/PyTorchWorkerLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/PyTorchWorkerLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/PyTorchWorkerLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/PyTorchWorkerLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/command/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/PyTorchWorkerComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/PyTorchWorkerComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/PyTorchWorkerComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/PyTorchWorkerComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/component/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/pytorch/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowCommons.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowCommons.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowCommons.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowCommons.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowServiceSpec.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowServiceSpec.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowServiceSpec.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/TensorFlowServiceSpec.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorBoardLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorBoardLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorBoardLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorBoardLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowPsLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowPsLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowPsLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowPsLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowWorkerLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowWorkerLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowWorkerLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TensorFlowWorkerLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorBoardComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorBoardComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorBoardComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorBoardComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowPsComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowPsComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowPsComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowPsComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowWorkerComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowWorkerComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowWorkerComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TensorFlowWorkerComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/runtimes/yarnservice/tensorflow/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/ClassPathUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/ClassPathUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/ClassPathUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/ClassPathUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/DockerUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/DockerUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/DockerUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/DockerUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/EnvironmentUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/EnvironmentUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/EnvironmentUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/EnvironmentUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/KerberosPrincipalFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/KerberosPrincipalFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/KerberosPrincipalFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/KerberosPrincipalFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/Localizer.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/Localizer.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/Localizer.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/Localizer.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/SubmarineResourceUtils.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/SubmarineResourceUtils.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/SubmarineResourceUtils.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/SubmarineResourceUtils.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/ZipUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/ZipUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/ZipUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/ZipUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/package-info.java b/submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/package-info.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/main/java/org/apache/submarine/utils/package-info.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/main/java/org/apache/submarine/utils/package-info.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/FileUtilitiesForTests.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/FileUtilitiesForTests.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/FileUtilitiesForTests.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/FileUtilitiesForTests.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/ParamBuilderForTest.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/ParamBuilderForTest.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/ParamBuilderForTest.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/ParamBuilderForTest.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCli.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCli.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCli.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCli.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliCommons.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliCommons.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliCommons.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliCommons.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliLocalization.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliLocalization.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliLocalization.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/TestYarnServiceRunJobCliLocalization.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/YarnServiceCliTestUtils.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/YarnServiceCliTestUtils.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/client/cli/yarnservice/YarnServiceCliTestUtils.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/client/cli/yarnservice/YarnServiceCliTestUtils.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/TestServiceWrapper.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/TestServiceWrapper.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/TestServiceWrapper.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/TestServiceWrapper.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/TestTFConfigGenerator.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/TestTFConfigGenerator.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/TestTFConfigGenerator.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/TestTFConfigGenerator.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/command/AbstractTFLaunchCommandTestHelper.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/command/AbstractTFLaunchCommandTestHelper.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/command/AbstractTFLaunchCommandTestHelper.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/command/AbstractTFLaunchCommandTestHelper.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/command/TestLaunchCommandFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/command/TestLaunchCommandFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/command/TestLaunchCommandFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/command/TestLaunchCommandFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/pytorch/TestPyTorchServiceSpec.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/pytorch/TestPyTorchServiceSpec.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/pytorch/TestPyTorchServiceSpec.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/pytorch/TestPyTorchServiceSpec.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorBoardLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorBoardLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorBoardLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorBoardLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorFlowLaunchCommand.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorFlowLaunchCommand.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorFlowLaunchCommand.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/command/TestTensorFlowLaunchCommand.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/ComponentTestCommons.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/ComponentTestCommons.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/ComponentTestCommons.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/ComponentTestCommons.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorBoardComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorBoardComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorBoardComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorBoardComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowPsComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowPsComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowPsComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowPsComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowWorkerComponent.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowWorkerComponent.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowWorkerComponent.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/runtimes/yarnservice/tensorflow/component/TestTensorFlowWorkerComponent.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestClassPathUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestClassPathUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestClassPathUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestClassPathUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestEnvironmentUtilities.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestEnvironmentUtilities.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestEnvironmentUtilities.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestEnvironmentUtilities.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestKerberosPrincipalFactory.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestKerberosPrincipalFactory.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestKerberosPrincipalFactory.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestKerberosPrincipalFactory.java
diff --git a/submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestSubmarineResourceUtils.java b/submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestSubmarineResourceUtils.java
similarity index 100%
rename from submarine-runtime/yarnservice-runtime/src/test/java/org/apache/submarine/utils/TestSubmarineResourceUtils.java
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/java/org/apache/submarine/utils/TestSubmarineResourceUtils.java
diff --git a/submarine-core/src/test/resources/core-site.xml b/submarine-server/server-submitter/submitter-yarnservice/src/test/resources/core-site.xml
similarity index 100%
rename from submarine-core/src/test/resources/core-site.xml
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/resources/core-site.xml
diff --git a/submarine-core/src/test/resources/hdfs-site.xml b/submarine-server/server-submitter/submitter-yarnservice/src/test/resources/hdfs-site.xml
similarity index 100%
rename from submarine-core/src/test/resources/hdfs-site.xml
rename to submarine-server/server-submitter/submitter-yarnservice/src/test/resources/hdfs-site.xml