diff --git a/hadoop-ozone/dist/pom.xml b/hadoop-ozone/dist/pom.xml index c9876ac31469..594a10365bf5 100644 --- a/hadoop-ozone/dist/pom.xml +++ b/hadoop-ozone/dist/pom.xml @@ -143,6 +143,11 @@ ozone-tools runtime + + org.apache.ozone + ozone-vapor + runtime + diff --git a/hadoop-ozone/dist/src/main/license/jar-report.txt b/hadoop-ozone/dist/src/main/license/jar-report.txt index 94827486c8ef..862e779e23c0 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 4fe37de1d26b..2e29126762c2 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 bee4225070cc..d9800cd3b4ff 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 22fa0cfea16f..a4dca0ab8d66 100644 --- a/hadoop-ozone/freon/pom.xml +++ b/hadoop-ozone/freon/pom.xml @@ -42,10 +42,6 @@ com.fasterxml.jackson.core jackson-annotations - - com.fasterxml.jackson.core - jackson-core - com.fasterxml.jackson.core jackson-databind @@ -54,10 +50,6 @@ com.google.guava guava - - com.google.protobuf - protobuf-java - commons-codec commons-codec @@ -86,18 +78,6 @@ org.apache.hadoop hadoop-common - - org.apache.hadoop - hadoop-hdfs - - - org.apache.httpcomponents - httpclient - - - org.apache.httpcomponents - httpcore - org.apache.ozone hdds-cli-common @@ -114,26 +94,14 @@ org.apache.ozone hdds-config - - org.apache.ozone - hdds-container-service - org.apache.ozone hdds-interface-client - - org.apache.ozone - hdds-interface-server - org.apache.ozone hdds-server-framework - - org.apache.ozone - hdds-server-scm - org.apache.ozone ozone-cli-admin @@ -154,26 +122,10 @@ org.apache.ozone ozone-interface-client - - org.apache.ozone - ozone-interface-storage - - - org.apache.ozone - ozone-manager - - - org.apache.ratis - ratis-client - org.apache.ratis ratis-common - - org.apache.ratis - ratis-proto - org.apache.ratis ratis-thirdparty-misc @@ -193,31 +145,6 @@ slf4j-reload4j runtime - - - - org.apache.ozone - hdds-common - test-jar - test - - - org.apache.ozone - hdds-container-service - test-jar - test - - - org.apache.ozone - hdds-server-framework - test-jar - test - - - org.apache.ozone - hdds-test-utils - test - diff --git a/hadoop-ozone/pom.xml b/hadoop-ozone/pom.xml index 417f05064efd..e0ab05564416 100644 --- a/hadoop-ozone/pom.xml +++ b/hadoop-ozone/pom.xml @@ -53,6 +53,7 @@ s3-secret-store s3gateway tools + vapor diff --git a/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml new file mode 100644 index 000000000000..ee5ed59808bf --- /dev/null +++ b/hadoop-ozone/vapor/dev-support/findbugsExcludeFile.xml @@ -0,0 +1,16 @@ + + + + diff --git a/hadoop-ozone/vapor/pom.xml b/hadoop-ozone/vapor/pom.xml new file mode 100644 index 000000000000..422333a1ba75 --- /dev/null +++ b/hadoop-ozone/vapor/pom.xml @@ -0,0 +1,232 @@ + + + + 4.0.0 + + org.apache.ozone + ozone + 2.2.0-SNAPSHOT + + ozone-vapor + 2.2.0-SNAPSHOT + jar + Apache Ozone Vapor + Apache Ozone server-side load testing tools + + + false + + + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.google.guava + guava + + + com.google.protobuf + protobuf-java + + + commons-io + commons-io + + + info.picocli + picocli + + + io.dropwizard.metrics + metrics-core + + + org.apache.commons + commons-lang3 + + + org.apache.hadoop + hadoop-common + + + org.apache.hadoop + hadoop-hdfs + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpcore + + + org.apache.ozone + hdds-cli-common + + + org.apache.ozone + hdds-client + + + org.apache.ozone + hdds-common + + + org.apache.ozone + hdds-config + + + org.apache.ozone + hdds-container-service + + + org.apache.ozone + hdds-interface-client + + + org.apache.ozone + hdds-interface-server + + + org.apache.ozone + hdds-server-framework + + + org.apache.ozone + hdds-server-scm + + + org.apache.ozone + ozone-cli-admin + + + org.apache.ozone + ozone-common + + + org.apache.ozone + ozone-freon + + + org.apache.ozone + ozone-interface-storage + + + org.apache.ozone + ozone-manager + + + org.apache.ratis + ratis-client + + + org.apache.ratis + ratis-common + + + org.apache.ratis + ratis-proto + + + org.apache.ratis + ratis-thirdparty-misc + + + org.slf4j + slf4j-api + + + + org.kohsuke.metainf-services + metainf-services + provided + + + org.slf4j + slf4j-reload4j + runtime + + + + + + com.github.spotbugs + spotbugs-maven-plugin + + ${basedir}/dev-support/findbugsExcludeFile.xml + true + 2048 + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.kohsuke.metainf-services + metainf-services + ${metainf-services.version} + + + info.picocli + picocli-codegen + ${picocli.version} + + + + org.kohsuke.metainf_services.AnnotationProcessorImpl + picocli.codegen.aot.graalvm.processor.NativeImageConfigGeneratorProcessor + + + -Aproject=${project.groupId}/${project.artifactId} + + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + ban-annotations + + + + + Only selected annotation processors are enabled, see configuration of maven-compiler-plugin. + + org.apache.hadoop.hdds.conf.Config + org.apache.hadoop.hdds.conf.ConfigGroup + org.apache.hadoop.hdds.scm.metadata.Replicate + org.apache.hadoop.ozone.om.request.validation.OMClientVersionValidator + org.apache.hadoop.ozone.om.request.validation.OMLayoutVersionValidator + org.apache.hadoop.ozone.om.request.validation.RequestFeatureValidator + + + + + + + + + + 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 d68a079de437..6fe07ad70714 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 a240698c3eef..b7ca060419da 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 { + Callable, 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 3ad35ecc5a2b..6e1be57d4201 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 { + Callable, 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 cb3769e7fd2d..c4e3d9a5c7dc 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. *

* 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, FreonSubcommand { +@MetaInfServices(VaporSubcommand.class) +public class DatanodeSimulator implements Callable, 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 33b088d65199..00489af7b1bc 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, StreamObserver { 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 37b6af06bf71..60b4b84a118e 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 41744ffd7ea3..e575576428b3 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, FreonSubcommand { +public final class SCMThroughputBenchmark implements Callable, 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 52456bf6c2d7..0ba76afd1a69 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 { + implements Callable, VaporSubcommand { private static final Logger LOG = LoggerFactory.getLogger(StreamingGenerator.class); diff --git a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.java new file mode 100644 index 000000000000..09bb8ca5b0ae --- /dev/null +++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/Vapor.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.hadoop.ozone.freon; + +import org.apache.hadoop.hdds.cli.HddsVersionProvider; +import picocli.CommandLine.Command; + +/** + * Ozone data generator and performance test tool. + */ +@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/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java new file mode 100644 index 000000000000..7aebd5b30fcd --- /dev/null +++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/VaporSubcommand.java @@ -0,0 +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 + * + * 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.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 731276b548ac..21cb0f854523 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 { + Callable, 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 ef5d289b2205..86e19ddddc79 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 05b498abb2fe..fb6012364755 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 { 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 9de7a6e21dda..0d9fba041fe4 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 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% 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/containergenerator/package-info.java diff --git a/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java new file mode 100644 index 000000000000..82f7a208a4f4 --- /dev/null +++ b/hadoop-ozone/vapor/src/main/java/org/apache/hadoop/ozone/freon/package-info.java @@ -0,0 +1,21 @@ +/* + * 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 class used for testing and benchmarking ozone cluster. + */ +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 02afd292ecee..7dfe565833bc 100644 --- a/pom.xml +++ b/pom.xml @@ -1306,6 +1306,11 @@ ozone-tools ${ozone.version} + + org.apache.ozone + ozone-vapor + ${ozone.version} + org.apache.ozone rocksdb-checkpoint-differ