You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xi...@apache.org on 2020/05/26 04:19:05 UTC
[incubator-pinot] 01/01: Update Quickstart to take tmp dir as a
parameter and default to current dir
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 <fx...@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-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org