Skip to content

Commit

Permalink
--ignore-launch-engine
Browse files Browse the repository at this point in the history
  • Loading branch information
lsm1 committed Feb 28, 2024
1 parent 2c9fb3d commit 95dda6a
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ public class KyuubiBeeLine extends BeeLine {
private static final int ERRNO_OTHER = 2;

private static final String PYTHON_MODE_PREFIX = "--python-mode";
private static final String IGNORE_LAUNCH_ENGINE_PREFIX = "--ignore-launch-engine";
private boolean pythonMode = false;
private boolean ignoreLaunchEngine = false;

public KyuubiBeeLine() {
this(true);
Expand Down Expand Up @@ -90,6 +92,8 @@ void usage() {
super.usage();
output("Usage: java " + KyuubiBeeLine.class.getCanonicalName());
output(" --python-mode Execute python code/script.");
output("Usage: java " + KyuubiBeeLine.class.getCanonicalName());
output(" --ignore-launch-engine Ignore launch engine log.");
}

public boolean isPythonMode() {
Expand All @@ -101,6 +105,15 @@ public void setPythonMode(boolean pythonMode) {
this.pythonMode = pythonMode;
}

public boolean isIgnoreLaunchEngine() {
return ignoreLaunchEngine;
}

// Visible for testing
public void setIgnoreLaunchEngine(boolean ignoreLaunchEngine) {
this.ignoreLaunchEngine = ignoreLaunchEngine;
}

/** Starts the program. */
public static void main(String[] args) throws IOException {
mainWithInputRedirection(args, null);
Expand Down Expand Up @@ -169,6 +182,8 @@ int initArgs(String[] args) {
protected void processOption(String arg, ListIterator iter) throws ParseException {
if (PYTHON_MODE_PREFIX.equals(arg)) {
pythonMode = true;
} else if (IGNORE_LAUNCH_ENGINE_PREFIX.equals(arg)) {
ignoreLaunchEngine = true;
} else {
super.processOption(arg, iter);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.apache.hive.beeline;

import static org.apache.kyuubi.jdbc.hive.JdbcConnectionParams.*;
import static org.apache.kyuubi.jdbc.hive.KyuubiConnection.IGNORE_LAUNCH_ENGINE_PROPERTY;

import com.google.common.annotations.VisibleForTesting;
import java.io.*;
Expand Down Expand Up @@ -450,6 +451,10 @@ public boolean connect(Properties props) throws IOException {
AUTH_PASSWD, "javax.jdo.option.ConnectionPassword", "ConnectionPassword",
});

if (beeLine.isIgnoreLaunchEngine()) {
props.put(IGNORE_LAUNCH_ENGINE_PROPERTY, "true");
}

if (url == null || url.length() == 0) {
return beeLine.error("Property \"url\" is required");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,26 @@ public void testKyuubiBeeLinePythonMode() {
kyuubiBeeLine.setPythonMode(false);
}

@Test
public void testKyuubiBeelineIgnoreLaunchEngine() {
KyuubiBeeLine kyuubiBeeLine = new KyuubiBeeLine();
String[] args1 = {"-u", "badUrl", "--ignore-launch-engine"};
kyuubiBeeLine.initArgs(args1);
assertTrue(kyuubiBeeLine.isIgnoreLaunchEngine());
kyuubiBeeLine.setIgnoreLaunchEngine(false);

String[] args2 = {"--ignore-launch-engine", "-f", "test.sql"};
kyuubiBeeLine.initArgs(args2);
assertTrue(kyuubiBeeLine.isIgnoreLaunchEngine());
assert kyuubiBeeLine.getOpts().getScriptFile().equals("test.sql");
kyuubiBeeLine.setIgnoreLaunchEngine(false);

String[] args3 = {"-u", "badUrl"};
kyuubiBeeLine.initArgs(args3);
assertTrue(!kyuubiBeeLine.isIgnoreLaunchEngine());
kyuubiBeeLine.setIgnoreLaunchEngine(false);
}

@Test
public void testKyuubiBeelineComment() {
KyuubiBeeLine kyuubiBeeLine = new KyuubiBeeLine();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
public class KyuubiConnection implements SQLConnection, KyuubiLoggable {
public static final Logger LOG = LoggerFactory.getLogger(KyuubiConnection.class.getName());
public static final String BEELINE_MODE_PROPERTY = "BEELINE_MODE";
public static final String IGNORE_LAUNCH_ENGINE_PROPERTY = "IGNORE_LAUNCH_ENGINE_LOG";
public static final String HS2_PROXY_USER = "hive.server2.proxy.user";
public static int DEFAULT_ENGINE_LOG_THREAD_TIMEOUT = 10 * 1000;

Expand Down Expand Up @@ -112,6 +113,8 @@ public class KyuubiConnection implements SQLConnection, KyuubiLoggable {

private boolean isBeeLineMode;

private boolean ignoreLaunchEngineLog;

/** Get all direct HiveServer2 URLs from a ZooKeeper based HiveServer2 URL */
public static List<JdbcConnectionParams> getAllUrls(String zookeeperBasedHS2Url)
throws Exception {
Expand All @@ -127,6 +130,7 @@ public static List<JdbcConnectionParams> getAllUrls(String zookeeperBasedHS2Url)

public KyuubiConnection(String uri, Properties info) throws SQLException {
isBeeLineMode = Boolean.parseBoolean(info.getProperty(BEELINE_MODE_PROPERTY));
ignoreLaunchEngineLog = Boolean.parseBoolean(info.getProperty(IGNORE_LAUNCH_ENGINE_PROPERTY));
try {
connParams = Utils.parseURL(uri, info);
} catch (ZooKeeperHiveClientException e) {
Expand Down Expand Up @@ -262,7 +266,7 @@ public List<String> getExecLog() throws SQLException, ClosedOrCancelledException
"Method getExecLog() failed. The " + "connection has been closed.");
}

if (launchEngineOpHandle == null) {
if (launchEngineOpHandle == null || ignoreLaunchEngineLog) {
return Collections.emptyList();
}

Expand Down

0 comments on commit 95dda6a

Please sign in to comment.