Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setting required env variables for local mode #685

Merged
merged 1 commit into from
Oct 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
setting needed env variables for local mode
  • Loading branch information
jmilkiewicz committed Oct 2, 2023
commit 5733d94d632dc35a953b1cfe3d4e0b6c5e57690a
33 changes: 19 additions & 14 deletions server/src/main/java/com/exacaster/lighter/backend/SparkApp.java
Original file line number Diff line number Diff line change
@@ -1,41 +1,46 @@
package com.exacaster.lighter.backend;

import static org.apache.spark.launcher.SparkLauncher.DRIVER_MEMORY;
import static org.apache.spark.launcher.SparkLauncher.EXECUTOR_CORES;
import static org.apache.spark.launcher.SparkLauncher.EXECUTOR_MEMORY;

import com.exacaster.lighter.application.Application;
import com.exacaster.lighter.concurrency.EmptyWaitable;
import com.exacaster.lighter.concurrency.Waitable;
import org.apache.spark.launcher.SparkLauncher;

import java.io.IOException;
import java.util.Collections;
import java.util.Map;
import java.util.function.Consumer;
import org.apache.spark.launcher.SparkLauncher;

import static org.apache.spark.launcher.SparkLauncher.DRIVER_MEMORY;
import static org.apache.spark.launcher.SparkLauncher.EXECUTOR_CORES;
import static org.apache.spark.launcher.SparkLauncher.EXECUTOR_MEMORY;

public class SparkApp {

private final Map<String, String> configDefaults;
private final Map<String, String> backendConfiguration;
private final Map<String, String> envVariables;
private final Application application;
private final SparkListener listener;

public SparkApp(Application application,
Map<String, String> configDefaults,
Map<String, String> backendConfiguration,
SparkListener listener) {
Consumer<Throwable> errorHandler) {
this(application, configDefaults, backendConfiguration, Collections.emptyMap(), new ClusterSparkListener(errorHandler));
}

public SparkApp(Application application,
Map<String, String> configDefaults,
Map<String, String> backendConfiguration,
Map<String, String> envVariables,
SparkListener listener) {
this.application = application;
this.configDefaults = configDefaults;
this.backendConfiguration = backendConfiguration;
this.envVariables = envVariables;
this.listener = listener;
}

public SparkApp(Application application,
Map<String, String> configDefaults,
Map<String, String> backendConfiguration,
Consumer<Throwable> errorHandler) {
this(application, configDefaults, backendConfiguration, new ClusterSparkListener(errorHandler));
}

public Waitable launch() {
try {
var launcher = buildLauncher();
Expand All @@ -50,7 +55,7 @@ public Waitable launch() {

private SparkLauncher buildLauncher() {
var submitParams = application.getSubmitParams();
var launcher = new SparkLauncher()
var launcher = new SparkLauncher(envVariables)
.setAppName(submitParams.getName())
.setAppResource(submitParams.getFile());

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
package com.exacaster.lighter.backend.local;

import static com.exacaster.lighter.backend.Constants.DEPLOY_MODE_CLIENT;
import static org.apache.spark.launcher.SparkLauncher.CHILD_PROCESS_LOGGER_NAME;
import static org.apache.spark.launcher.SparkLauncher.DEPLOY_MODE;
import static org.apache.spark.launcher.SparkLauncher.SPARK_MASTER;

import com.exacaster.lighter.application.Application;
import com.exacaster.lighter.application.ApplicationInfo;
import com.exacaster.lighter.backend.Backend;
Expand All @@ -13,11 +8,17 @@
import com.exacaster.lighter.log.Log;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

import java.time.Duration;
import java.util.Map;
import java.util.Optional;
import java.util.function.Consumer;

import static com.exacaster.lighter.backend.Constants.DEPLOY_MODE_CLIENT;
import static org.apache.spark.launcher.SparkLauncher.CHILD_PROCESS_LOGGER_NAME;
import static org.apache.spark.launcher.SparkLauncher.DEPLOY_MODE;
import static org.apache.spark.launcher.SparkLauncher.SPARK_MASTER;

public class LocalBackend implements Backend {

private final AppConfiguration conf;
Expand Down Expand Up @@ -69,6 +70,10 @@ public SparkApp prepareSparkApplication(Application application, Map<String, Str
SPARK_MASTER, "local[*]",
CHILD_PROCESS_LOGGER_NAME, localApp.getLoggerName()
),
Map.of("LIGHTER_SESSION_ID", application.getId(),
"PY_GATEWAY_PORT", conf.getPyGatewayPort().toString(),
"PY_GATEWAY_HOST", "localhost"
),
localApp
);
}
Expand Down