-
Notifications
You must be signed in to change notification settings - Fork 36
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
Debugging is difficult without access to the Spark UI #41
Comments
This is when running in "local" mode. I've tried adding the following to the "Custom Settings" area, but to no avail:
|
By deafult (docker-compose + Linux): Spark local is being run in the sessionmanager container. Sessionmanager uses host network driver and exposes all ports on localhost. Do you work on a Mac? SparkUI might not be exposed on OSX. |
Yes, running on a mac. I'll try |
Update: I rebuild on a Linux server, confirmed that host networking is being used, see that
I've tried setting What I don't understand is that the
while we could use ssh tunneling or similar get around this, it's an extra step I'd like to avoid. Furthermore, would like to continue to do development on the Mac, so still interested in figuring out why regular port mapping isn't working with the session manager. |
When running in bridged network mode, it appears that port mapping isn't working for a similar reason; ports are being bound to the loopback adapter only:
This could also be the problem with standalone cluster mode not working from the container either. |
This is what the session manager looks like when in "viewer mode":
|
I've had a breakthrough, but it's not pretty, as I believe it's due to a bug in Seahorse. The issue is with an interaction between The heart of the issues is that Line 29 in 96d7902
The environment variable takes precedence over all other mechanisms for specifying the network address (e.g. While not ideal (because this is the last resort we have for overriding all other setting mechanisms), this ends up working OK in the cluster modes, but in local mode, the I figure this out by setting I'd suggest changing this in a number of ways, starting with using |
This is my current fix. Not sure if this is generally applicable. @jaroslaw-osmanski Should a separate bug be created for this issue (that Spark UI doesn't work outside of host networking and connections via localhost)? diff --git a/sessionmanager/src/main/scala/ai/deepsense/sessionmanager/service/sessionspawner/sparklauncher/clusters/LocalSparkLauncher.scala b/sessionmanager/src/main/scala/ai/deepsense/sessionmanager/service/sessionspawner/sparklauncher/clusters/LocalSparkLauncher.scala
index 121315c2d..409b10b85 100644
--- a/sessionmanager/src/main/scala/ai/deepsense/sessionmanager/service/sessionspawner/sparklauncher/clusters/LocalSparkLauncher.scala
+++ b/sessionmanager/src/main/scala/ai/deepsense/sessionmanager/service/sessionspawner/sparklauncher/clusters/LocalSparkLauncher.scala
@@ -32,7 +32,7 @@ private [clusters] object LocalSparkLauncher {
config: SparkLauncherConfig,
clusterConfig: ClusterDetails,
args: SparkOptionsMultiMap): SparkLauncher = {
- new SparkLauncher(env(config, clusterConfig))
+ new SparkLauncher(env(config, clusterConfig.copy(userIP = "0.0.0.0")))
.setSparkArgs(args)
.setVerbose(true)
.setMainClass(config.className)
-- |
A better option than above would likely to make |
Logging this here because no one had an answer in the forums.
When Spark jobs get stalled or take longer than expected, it's critical to be able to look at the Spark UI for debugging and viewing logs. I've attempted to expose port 4040 and 4041 in the session manager, but have not been able to connect.
Could you provide steps on how to connect to the Spark UI when the driver is launched via Seahorse?
The text was updated successfully, but these errors were encountered: