This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 4d262d33523 HDDS-14771. Split server-side load testers from freon
(#9874)
4d262d33523 is described below
commit 4d262d335236090eabf0a1e04e9d8c2032532082
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Mon Mar 9 08:45:20 2026 +0100
HDDS-14771. Split server-side load testers from freon (#9874)
---
hadoop-ozone/dist/pom.xml | 5 ++
hadoop-ozone/dist/src/main/license/jar-report.txt | 1 +
hadoop-ozone/dist/src/shell/ozone/ozone | 11 ++++
.../dist/src/shell/ozone/ozone-functions.sh | 29 +++++++++
hadoop-ozone/freon/pom.xml | 73 ----------------------
hadoop-ozone/pom.xml | 1 +
.../vapor/dev-support/findbugsExcludeFile.xml | 16 +++++
hadoop-ozone/{freon => vapor}/pom.xml | 61 ++----------------
.../hadoop/ozone/freon/BaseAppendLogGenerator.java | 2 +-
.../hadoop/ozone/freon/ChunkManagerDiskWrite.java | 4 +-
.../ozone/freon/ClosedContainerReplicator.java | 4 +-
.../ozone/freon/DatanodeSimulationState.java | 0
.../hadoop/ozone/freon/DatanodeSimulator.java | 6 +-
.../freon/FollowerAppendLogEntryGenerator.java | 2 +-
.../ozone/freon/LeaderAppendLogEntryGenerator.java | 2 +-
.../hadoop/ozone/freon/SCMThroughputBenchmark.java | 4 +-
.../hadoop/ozone/freon/StreamingGenerator.java | 4 +-
.../java/org/apache/hadoop/ozone/freon/Vapor.java} | 24 ++++++-
.../hadoop/ozone/freon/VaporSubcommand.java} | 10 +--
.../freon/containergenerator/BaseGenerator.java | 3 +-
.../containergenerator/GeneratorDatanode.java | 8 +--
.../freon/containergenerator/GeneratorOm.java | 4 +-
.../freon/containergenerator/GeneratorScm.java | 4 +-
.../freon/containergenerator/package-info.java | 0
.../apache/hadoop/ozone/freon}/package-info.java | 4 +-
.../containergenerator/TestGeneratorDatanode.java | 0
pom.xml | 5 ++
27 files changed, 126 insertions(+), 161 deletions(-)
diff --git a/hadoop-ozone/dist/pom.xml b/hadoop-ozone/dist/pom.xml
index e0d9c1486af..eb7f2bc2430 100644
--- a/hadoop-ozone/dist/pom.xml
+++ b/hadoop-ozone/dist/pom.xml
@@ -143,6 +143,11 @@
<artifactId>ozone-tools</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.ozone</groupId>
+ <artifactId>ozone-vapor</artifactId>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
<build>
diff --git a/hadoop-ozone/dist/src/main/license/jar-report.txt
b/hadoop-ozone/dist/src/main/license/jar-report.txt
index 94827486c8e..862e779e23c 100644
--- a/hadoop-ozone/dist/src/main/license/jar-report.txt
+++ b/hadoop-ozone/dist/src/main/license/jar-report.txt
@@ -233,6 +233,7 @@ share/ozone/lib/ozone-recon.jar
share/ozone/lib/ozone-s3-secret-store.jar
share/ozone/lib/ozone-s3gateway.jar
share/ozone/lib/ozone-tools.jar
+share/ozone/lib/ozone-vapor.jar
share/ozone/lib/perfmark-api.jar
share/ozone/lib/picocli.jar
share/ozone/lib/picocli-shell-jline3.jar
diff --git a/hadoop-ozone/dist/src/shell/ozone/ozone
b/hadoop-ozone/dist/src/shell/ozone/ozone
index 4fe37de1d26..2e29126762c 100755
--- a/hadoop-ozone/dist/src/shell/ozone/ozone
+++ b/hadoop-ozone/dist/src/shell/ozone/ozone
@@ -63,6 +63,7 @@ function ozone_usage
ozone_add_subcommand "debug" client "Ozone debug tool"
ozone_add_subcommand "repair" client "Ozone repair tool"
ozone_add_subcommand "ratis" client "Ozone ratis tool"
+ ozone_add_subcommand "vapor" client "Ozone server simulator"
ozone_generate_usage "${OZONE_SHELL_EXECNAME}" false
}
@@ -129,6 +130,11 @@ function ozonecmd_case
OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Freon
OZONE_FREON_OPTS="${OZONE_FREON_OPTS} ${RATIS_OPTS}
${OZONE_MODULE_ACCESS_ARGS}"
OZONE_RUN_ARTIFACT_NAME="ozone-freon"
+ if ozone_is_freon_command_moved_to_vapor; then
+ # backward compatibility
+ OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Vapor
+ OZONE_RUN_ARTIFACT_NAME="ozone-vapor"
+ fi
;;
getconf)
OZONE_CLASSNAME=org.apache.hadoop.ozone.conf.OzoneGetConf;
@@ -235,6 +241,11 @@ function ozonecmd_case
OZONE_CLASSNAME=org.apache.hadoop.ozone.shell.OzoneRatis
OZONE_RUN_ARTIFACT_NAME="ozone-tools"
;;
+ vapor)
+ OZONE_CLASSNAME=org.apache.hadoop.ozone.freon.Vapor
+ OZONE_VAPOR_OPTS="${OZONE_VAPOR_OPTS} ${RATIS_OPTS}
${OZONE_MODULE_ACCESS_ARGS}"
+ OZONE_RUN_ARTIFACT_NAME="ozone-vapor"
+ ;;
*)
OZONE_CLASSNAME="${subcmd}"
if ! ozone_validate_classname "${OZONE_CLASSNAME}"; then
diff --git a/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
b/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
index bee4225070c..d9800cd3b4f 100755
--- a/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
+++ b/hadoop-ozone/dist/src/shell/ozone/ozone-functions.sh
@@ -2940,3 +2940,32 @@ function ozone_set_deprecated_hadoop_vars
ozone_set_deprecated_var "HADOOP_${suffix}" "OZONE_${suffix}"
done
}
+
+## @description Check if command is one that was moved from freon to vapor
+function ozone_is_freon_command_moved_to_vapor
+{
+ local opt subcommand
+
+ for opt in "${OZONE_SUBCMD_ARGS[@]}"; do
+ for subcommand in \
+ cgdn \
+ cgom \
+ cgscm \
+ cmdw chunk-manager-disk-write \
+ cr container-replicator \
+ falg follower-append-log-generator \
+ lalg leader-append-log-generator \
+ simulate-datanode \
+ stb scm-throughput-benchmark \
+ strmg streaming-generator
+ do
+ if [[ "$opt" == "$subcommand" ]]; then
+ echo "WARN: 'ozone freon $subcommand' is changed to 'ozone vapor
$subcommand'." >&2
+ echo " Please update your scripts since 'ozone freon $subcommand'
may no longer" >&2
+ echo " work in future releases." >&2
+ return 0
+ fi
+ done
+ done
+ return 1
+}
diff --git a/hadoop-ozone/freon/pom.xml b/hadoop-ozone/freon/pom.xml
index 22fa0cfea16..a4dca0ab8d6 100644
--- a/hadoop-ozone/freon/pom.xml
+++ b/hadoop-ozone/freon/pom.xml
@@ -42,10 +42,6 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
@@ -54,10 +50,6 @@
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
- <dependency>
- <groupId>com.google.protobuf</groupId>
- <artifactId>protobuf-java</artifactId>
- </dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
@@ -86,18 +78,6 @@
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-cli-common</artifactId>
@@ -114,26 +94,14 @@
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-config</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-container-service</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-interface-client</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-interface-server</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>hdds-server-framework</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-server-scm</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>ozone-cli-admin</artifactId>
@@ -154,26 +122,10 @@
<groupId>org.apache.ozone</groupId>
<artifactId>ozone-interface-client</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>ozone-interface-storage</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>ozone-manager</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.ratis</groupId>
- <artifactId>ratis-client</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ratis</groupId>
<artifactId>ratis-common</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ratis</groupId>
- <artifactId>ratis-proto</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ratis</groupId>
<artifactId>ratis-thirdparty-misc</artifactId>
@@ -193,31 +145,6 @@
<artifactId>slf4j-reload4j</artifactId>
<scope>runtime</scope>
</dependency>
-
- <!-- Test dependencies -->
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-common</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-container-service</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-server-framework</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-test-utils</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/hadoop-ozone/pom.xml b/hadoop-ozone/pom.xml
index 417f05064ef..e0ab0556441 100644
--- a/hadoop-ozone/pom.xml
+++ b/hadoop-ozone/pom.xml
@@ -53,6 +53,7 @@
<module>s3-secret-store</module>
<module>s3gateway</module>
<module>tools</module>
+ <module>vapor</module>
</modules>
<properties>
diff --git a/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml
b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml
new file mode 100644
index 00000000000..ee5ed59808b
--- /dev/null
+++ b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<FindBugsFilter>
+</FindBugsFilter>
diff --git a/hadoop-ozone/freon/pom.xml b/hadoop-ozone/vapor/pom.xml
similarity index 82%
copy from hadoop-ozone/freon/pom.xml
copy to hadoop-ozone/vapor/pom.xml
index 22fa0cfea16..422333a1ba7 100644
--- a/hadoop-ozone/freon/pom.xml
+++ b/hadoop-ozone/vapor/pom.xml
@@ -19,29 +19,17 @@
<artifactId>ozone</artifactId>
<version>2.2.0-SNAPSHOT</version>
</parent>
- <artifactId>ozone-freon</artifactId>
+ <artifactId>ozone-vapor</artifactId>
<version>2.2.0-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Apache Ozone Freon</name>
- <description>Apache Ozone Freon</description>
+ <name>Apache Ozone Vapor</name>
+ <description>Apache Ozone server-side load testing tools</description>
<properties>
<classpath.skip>false</classpath.skip>
</properties>
<dependencies>
- <dependency>
- <groupId>com.amazonaws</groupId>
- <artifactId>aws-java-sdk-core</artifactId>
- </dependency>
- <dependency>
- <groupId>com.amazonaws</groupId>
- <artifactId>aws-java-sdk-s3</artifactId>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-annotations</artifactId>
- </dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
@@ -58,10 +46,6 @@
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
@@ -74,10 +58,6 @@
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
</dependency>
- <dependency>
- <groupId>io.opentelemetry</groupId>
- <artifactId>opentelemetry-api</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
@@ -138,21 +118,13 @@
<groupId>org.apache.ozone</groupId>
<artifactId>ozone-cli-admin</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>ozone-cli-shell</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>ozone-client</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>ozone-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
- <artifactId>ozone-interface-client</artifactId>
+ <artifactId>ozone-freon</artifactId>
</dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
@@ -193,31 +165,6 @@
<artifactId>slf4j-reload4j</artifactId>
<scope>runtime</scope>
</dependency>
-
- <!-- Test dependencies -->
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-common</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-container-service</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-server-framework</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.ozone</groupId>
- <artifactId>hdds-test-utils</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
similarity index 96%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
index d68a079de43..6fe07ad7071 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/BaseAppendLogGenerator.java
@@ -30,7 +30,7 @@
/**
* Generic utility for leader/follower specific isolated tests.
*/
-public class BaseAppendLogGenerator extends BaseFreonGenerator {
+public class BaseAppendLogGenerator extends BaseFreonGenerator implements
VaporSubcommand {
@SuppressWarnings("checkstyle:VisibilityModifier")
@Option(names = {"-r", "--raft-peer"},
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
similarity index 98%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
index a240698c3ee..b7ca060419d 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ChunkManagerDiskWrite.java
@@ -60,10 +60,10 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class ChunkManagerDiskWrite extends BaseFreonGenerator implements
- Callable<Void> {
+ Callable<Void>, VaporSubcommand {
private static final Logger LOG =
LoggerFactory.getLogger(ChunkManagerDiskWrite.class);
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
similarity index 99%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
index 3ad35ecc5a2..6e1be57d420 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/ClosedContainerReplicator.java
@@ -80,9 +80,9 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class ClosedContainerReplicator extends BaseFreonGenerator implements
- Callable<Void> {
+ Callable<Void>, VaporSubcommand {
@Option(names = {"--datanode"},
description = "Replicate only containers on this specific datanode.",
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
similarity index 100%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulationState.java
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
similarity index 99%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
index cb3769e7fd2..c4e3d9a5c7d 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/DatanodeSimulator.java
@@ -100,7 +100,7 @@
* datanodes and exabytes of container data.
* <p>
* Usage:
- * ozone freon simulate-datanode -t 20 -n 5000 -c 40000
+ * ozone vapor simulate-datanode -t 20 -n 5000 -c 40000
* -t: number of threads to run datanodes heartbeat.
* -n: number of data node to simulate.
* -c: number containers to simulate per datanode.
@@ -119,8 +119,8 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
-public class DatanodeSimulator implements Callable<Void>, FreonSubcommand {
+@MetaInfServices(VaporSubcommand.class)
+public class DatanodeSimulator implements Callable<Void>, VaporSubcommand {
private static final Logger LOGGER = LoggerFactory.getLogger(
DatanodeSimulator.class);
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
similarity index 99%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
index 33b088d6519..00489af7b1b 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/FollowerAppendLogEntryGenerator.java
@@ -88,7 +88,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class FollowerAppendLogEntryGenerator extends BaseAppendLogGenerator
implements Callable<Void>, StreamObserver<AppendEntriesReplyProto> {
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
similarity index 99%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
index 37b6af06bf7..60b4b84a118 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/LeaderAppendLogEntryGenerator.java
@@ -82,7 +82,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class LeaderAppendLogEntryGenerator extends BaseAppendLogGenerator
implements
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
similarity index 99%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
index 41744ffd7ea..e575576428b 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/SCMThroughputBenchmark.java
@@ -109,9 +109,9 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
-public final class SCMThroughputBenchmark implements Callable<Void>,
FreonSubcommand {
+public final class SCMThroughputBenchmark implements Callable<Void>,
VaporSubcommand {
private static final Logger LOG =
LoggerFactory.getLogger(SCMThroughputBenchmark.class);
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
similarity index 98%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
index 52456bf6c2d..0ba76afd1a6 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/StreamingGenerator.java
@@ -45,9 +45,9 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class StreamingGenerator extends BaseFreonGenerator
- implements Callable<Void> {
+ implements Callable<Void>, VaporSubcommand {
private static final Logger LOG =
LoggerFactory.getLogger(StreamingGenerator.class);
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
similarity index 58%
copy from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
index c3c98f4abdd..09bb8ca5b0a 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
+++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java
@@ -15,7 +15,27 @@
* limitations under the License.
*/
+package org.apache.hadoop.ozone.freon;
+
+import org.apache.hadoop.hdds.cli.HddsVersionProvider;
+import picocli.CommandLine.Command;
+
/**
- * Container data/metadata generator components.
+ * Ozone data generator and performance test tool.
*/
-package org.apache.hadoop.ozone.freon.containergenerator;
+@Command(
+ name = "ozone vapor",
+ description = "Load generator using Ozone server components",
+ versionProvider = HddsVersionProvider.class,
+ mixinStandardHelpOptions = true)
+public class Vapor extends Freon {
+
+ @Override
+ public Class<?> subcommandType() {
+ return VaporSubcommand.class;
+ }
+
+ public static void main(String[] args) {
+ new Vapor().run(args);
+ }
+}
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
similarity index 82%
copy from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
index c3c98f4abdd..7aebd5b30fc 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java
@@ -15,7 +15,9 @@
* limitations under the License.
*/
-/**
- * Container data/metadata generator components.
- */
-package org.apache.hadoop.ozone.freon.containergenerator;
+package org.apache.hadoop.ozone.freon;
+
+/** Marker interface for subcommands to be registered for {@code ozone vapor}.
*/
+public interface VaporSubcommand {
+ // marker
+}
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
similarity index 96%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
index 731276b548a..21cb0f85452 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/BaseGenerator.java
@@ -22,13 +22,14 @@
import org.apache.hadoop.hdds.conf.StorageUnit;
import org.apache.hadoop.hdds.scm.ScmConfigKeys;
import org.apache.hadoop.ozone.freon.BaseFreonGenerator;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import picocli.CommandLine.Option;
/**
* Common options of data generators for fast scale test.
*/
public abstract class BaseGenerator extends BaseFreonGenerator implements
- Callable<Void> {
+ Callable<Void>, VaporSubcommand {
@Option(names = {"-u", "--user"},
description = "Owner of the files",
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
similarity index 98%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
index ef5d289b220..86e19ddddc7 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorDatanode.java
@@ -61,7 +61,7 @@
import org.apache.hadoop.ozone.container.keyvalue.impl.BlockManagerImpl;
import org.apache.hadoop.ozone.container.keyvalue.impl.ChunkManagerFactory;
import org.apache.hadoop.ozone.container.keyvalue.interfaces.ChunkManager;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.kohsuke.MetaInfServices;
import picocli.CommandLine.Command;
import picocli.CommandLine.Option;
@@ -74,13 +74,13 @@
optionListHeading =
"\nExecute this command with different parameters for each datanodes. "
+ "For example if you have 10 datanodes, use "
- + "'ozone freon cgdn --index=1 --datanodes=10', 'ozone freon"
- + " cgdn --index=2 --datanodes=10', 'ozone freon cgdn "
+ + "'ozone vapor cgdn --index=1 --datanodes=10', 'ozone vapor"
+ + " cgdn --index=2 --datanodes=10', 'ozone vapor cgdn "
+ "--index=3 --datanodes=10', ...\n\n",
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
@SuppressWarnings("java:S2245") // no need for secure random
public class GeneratorDatanode extends BaseGenerator {
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
similarity index 98%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
index 05b498abb2f..fb601236475 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorOm.java
@@ -37,7 +37,7 @@
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.ozone.OzoneAcl;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.apache.hadoop.ozone.om.OMStorage;
import org.apache.hadoop.ozone.om.codec.OMDBDefinition;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
@@ -61,7 +61,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class GeneratorOm extends BaseGenerator implements
Callable<Void> {
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
similarity index 97%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
index 9de7a6e21dd..0d9fba041fe 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/GeneratorScm.java
@@ -32,7 +32,7 @@
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
import org.apache.hadoop.hdds.utils.db.Table;
-import org.apache.hadoop.ozone.freon.FreonSubcommand;
+import org.apache.hadoop.ozone.freon.VaporSubcommand;
import org.kohsuke.MetaInfServices;
import picocli.CommandLine.Command;
@@ -45,7 +45,7 @@
versionProvider = HddsVersionProvider.class,
mixinStandardHelpOptions = true,
showDefaultValues = true)
-@MetaInfServices(FreonSubcommand.class)
+@MetaInfServices(VaporSubcommand.class)
public class GeneratorScm extends BaseGenerator {
private Table<ContainerID, ContainerInfo> containerStore;
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
similarity index 100%
copy from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
copy to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
diff --git
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java
similarity index 87%
rename from
hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
rename to
hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java
index c3c98f4abdd..82f7a208a4f 100644
---
a/hadoop-ozone/freon/src/main/java/org/apache/hadoop/ozone/freon/containergenerator/package-info.java
+++
b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java
@@ -16,6 +16,6 @@
*/
/**
- * Container data/metadata generator components.
+ * This package contains class used for testing and benchmarking ozone cluster.
*/
-package org.apache.hadoop.ozone.freon.containergenerator;
+package org.apache.hadoop.ozone.freon;
diff --git
a/hadoop-ozone/freon/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
b/hadoop-ozone/vapor/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
similarity index 100%
rename from
hadoop-ozone/freon/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
rename to
hadoop-ozone/vapor/src/test/java/org/apache/hadoop/ozone/freon/containergenerator/TestGeneratorDatanode.java
diff --git a/pom.xml b/pom.xml
index cec837839a1..0d3b6eacc43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1306,6 +1306,11 @@
<artifactId>ozone-tools</artifactId>
<version>${ozone.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.ozone</groupId>
+ <artifactId>ozone-vapor</artifactId>
+ <version>${ozone.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.ozone</groupId>
<artifactId>rocksdb-checkpoint-differ</artifactId>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]