This is an automated email from the ASF dual-hosted git repository. xiangfu pushed a commit to branch enhance_quickstart in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git
commit 7504fbce9828b82448ec45bdf728a43c5fdee010 Author: Xiang Fu <fx19880...@gmail.com> AuthorDate: Mon May 25 21:15:18 2020 -0700 Update Quickstart to take tmp dir as a parameter and default to current dir --- .../org/apache/pinot/tools/HybridQuickstart.java | 21 +++++++++++----- .../java/org/apache/pinot/tools/Quickstart.java | 18 +++++++++++--- .../org/apache/pinot/tools/RealtimeQuickStart.java | 18 +++++++++++--- .../tools/admin/command/QuickStartCommand.java | 29 +++++++++++++++++++--- 4 files changed, 71 insertions(+), 15 deletions(-) diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java index 3c55441..4fc2809 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/HybridQuickstart.java @@ -23,6 +23,9 @@ import com.google.common.collect.Lists; import java.io.File; import java.io.IOException; import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.pinot.common.utils.ZkStarter; import org.apache.pinot.spi.config.table.TableConfig; @@ -33,6 +36,7 @@ import org.apache.pinot.spi.stream.StreamDataProvider; import org.apache.pinot.spi.stream.StreamDataServerStartable; import org.apache.pinot.spi.utils.JsonUtils; import org.apache.pinot.tools.Quickstart.Color; +import org.apache.pinot.tools.admin.PinotAdministrator; import org.apache.pinot.tools.admin.command.QuickstartRunner; import org.apache.pinot.tools.streams.AirlineDataStream; import org.apache.pinot.tools.utils.KafkaStarterUtils; @@ -48,13 +52,19 @@ public class HybridQuickstart { private File _realtimeTableConfigFile; private File _dataFile; private File _ingestionJobSpecFile; + private File _tmpDir = new File(HybridQuickstart.class.getName()); public static void main(String[] args) throws Exception { - // TODO: Explicitly call below method to load dependencies from pinot-plugins libs which are excluded from pinot-tools packaging. - // E.g. Kafka related libs are coming from pinot-kafka-* lib, avro libs are coming from pinot-avro lib. - PluginManager.get().init(); - new HybridQuickstart().execute(); + List<String> arguments = new ArrayList<>(); + arguments.addAll(Arrays.asList("QuickStart", "-type", "HYBRID")); + arguments.addAll(Arrays.asList(args)); + PinotAdministrator.main(arguments.toArray(new String[arguments.size()])); + } + + public HybridQuickstart setTmpDir(String tmpDir) { + this._tmpDir = new File(tmpDir); + return this; } private QuickstartTableRequest prepareOfflineTableRequest(File configDir) @@ -110,8 +120,7 @@ public class HybridQuickstart { public void execute() throws Exception { - - File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis())); + File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis())); File configDir = new File(quickstartTmpDir, "configs"); File dataDir = new File(quickstartTmpDir, "data"); Preconditions.checkState(configDir.mkdirs()); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java index 3c0b0d1..ec671a0 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/Quickstart.java @@ -23,9 +23,13 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.io.File; import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.pinot.spi.data.readers.FileFormat; import org.apache.pinot.spi.plugin.PluginManager; +import org.apache.pinot.tools.admin.PinotAdministrator; import org.apache.pinot.tools.admin.command.QuickstartRunner; @@ -33,6 +37,12 @@ public class Quickstart { private static final String TAB = "\t\t"; private static final String NEW_LINE = "\n"; + private File _tmpDir = new File(Quickstart.class.getName());; + + public Quickstart setTmpDir(String tmpDir) { + this._tmpDir = new File(tmpDir); + return this; + } public enum Color { RESET("\u001B[0m"), GREEN("\u001B[32m"), YELLOW("\u001B[33m"), CYAN("\u001B[36m"); @@ -115,7 +125,7 @@ public class Quickstart { public void execute() throws Exception { - File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis())); + File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis())); File configDir = new File(quickstartTmpDir, "configs"); File dataDir = new File(quickstartTmpDir, "data"); Preconditions.checkState(configDir.mkdirs()); @@ -203,7 +213,9 @@ public class Quickstart { public static void main(String[] args) throws Exception { - PluginManager.get().init(); - new Quickstart().execute(); + List<String> arguments = new ArrayList<>(); + arguments.addAll(Arrays.asList("QuickStart", "-type", "BATCH")); + arguments.addAll(Arrays.asList(args)); + PinotAdministrator.main(arguments.toArray(new String[arguments.size()])); } } diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java index 275abc6..161b968 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/RealtimeQuickStart.java @@ -22,12 +22,16 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.io.File; import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.pinot.common.utils.ZkStarter; import org.apache.pinot.spi.plugin.PluginManager; import org.apache.pinot.spi.stream.StreamDataProvider; import org.apache.pinot.spi.stream.StreamDataServerStartable; import org.apache.pinot.tools.Quickstart.Color; +import org.apache.pinot.tools.admin.PinotAdministrator; import org.apache.pinot.tools.admin.command.QuickstartRunner; import org.apache.pinot.tools.streams.MeetupRsvpStream; import org.apache.pinot.tools.utils.KafkaStarterUtils; @@ -38,16 +42,24 @@ import static org.apache.pinot.tools.Quickstart.printStatus; public class RealtimeQuickStart { private StreamDataServerStartable _kafkaStarter; + private File _tmpDir = new File(RealtimeQuickStart.class.getName()); public static void main(String[] args) throws Exception { - PluginManager.get().init(); - new RealtimeQuickStart().execute(); + List<String> arguments = new ArrayList<>(); + arguments.addAll(Arrays.asList("QuickStart", "-type", "REALTIME")); + arguments.addAll(Arrays.asList(args)); + PinotAdministrator.main(arguments.toArray(new String[arguments.size()])); + } + + public RealtimeQuickStart setTmpDir(String tmpDir) { + this._tmpDir = new File(tmpDir); + return this; } public void execute() throws Exception { - File quickstartTmpDir = new File(FileUtils.getTempDirectory(), String.valueOf(System.currentTimeMillis())); + File quickstartTmpDir = new File(_tmpDir, String.valueOf(System.currentTimeMillis())); File configDir = new File(quickstartTmpDir, "configs"); File dataDir = new File(quickstartTmpDir, "data"); Preconditions.checkState(configDir.mkdirs()); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java index 141f442..1dd67d9 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/QuickStartCommand.java @@ -34,6 +34,9 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma @Option(name = "-type", required = false, metaVar = "<String>", usage = "Type of quickstart, supported: STREAM/BATCH/HYBRID") private String _type; + @Option(name = "-tmpDir", required = false, metaVar = "<String>", usage = "Temp Directory to host quickstart data") + private String _tmpDir; + @Option(name = "-help", required = false, help = true, aliases = {"-h", "--h", "--help"}, usage = "Print this message.") private boolean _help = false; @@ -52,6 +55,14 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma return this; } + public String getTmpDir() { + return _tmpDir; + } + + public void setTmpDir(String tmpDir) { + _tmpDir = tmpDir; + } + @Override public String toString() { return ("QuickStart -type " + _type); @@ -74,14 +85,26 @@ public class QuickStartCommand extends AbstractBaseAdminCommand implements Comma switch (_type.toUpperCase()) { case "OFFLINE": case "BATCH": - new Quickstart().execute(); + Quickstart quickstart = new Quickstart(); + if (_tmpDir != null) { + quickstart.setTmpDir(_tmpDir); + } + quickstart.execute(); break; case "REALTIME": case "STREAM": - new RealtimeQuickStart().execute(); + RealtimeQuickStart realtimeQuickStart = new RealtimeQuickStart(); + if (_tmpDir != null) { + realtimeQuickStart.setTmpDir(_tmpDir); + } + realtimeQuickStart.execute(); break; case "HYBRID": - new HybridQuickstart().execute(); + HybridQuickstart hybridQuickstart = new HybridQuickstart(); + if (_tmpDir != null) { + hybridQuickstart.setTmpDir(_tmpDir); + } + hybridQuickstart.execute(); break; default: throw new UnsupportedOperationException("Unsupported QuickStart type: " + _type); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org