-
Notifications
You must be signed in to change notification settings - Fork 117
Support executor java options #445
Conversation
| val executorSysProps = spark.parallelize(Seq(0)).flatMap { _ => | ||
| Maps.fromProperties(System.getProperties).asScala | ||
| }.collectAsMap() | ||
| println(s"The executor's JVM options did not match. Expected" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering why would you use println here instead of logger output?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
because this is integration test code, and we only get the container output (its stdout) so using a logger only adds more variability to the output.
See runSparkApplicationAndVerifyCompletion's expectedLogOnCompletion parameter
| println(s"All expected JVM options were present on the driver and executors.") | ||
| val spark = SparkSession.builder().getOrCreate().sparkContext | ||
| try { | ||
| val nonMatchingExecutorOptions = spark.parallelize(Seq(0)).flatMap { _ => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note to other reviewers: the lambda parameter to this flatMap will run on executors, not driver
| val executorSysProps = spark.parallelize(Seq(0)).flatMap { _ => | ||
| Maps.fromProperties(System.getProperties).asScala | ||
| }.collectAsMap() | ||
| println(s"The executor's JVM options did not match. Expected" + |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
because this is integration test code, and we only get the container output (its stdout) so using a logger only adds more variability to the output.
See runSparkApplicationAndVerifyCompletion's expectedLogOnCompletion parameter
| println(s"Key: ${prop._1}, Value: ${prop._2}") | ||
| } | ||
| } else { | ||
| println("All expected JVM options were present on the driver and executors.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you use System.exit(1) to fail out of the driver section but have an if here. I think I'd prefer using System.exit in both places
ash211
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, ready to merge
|
Merge #444 first |
|
@mccheah haven't figured out why PRs A <- B <- C can all be clean, and then when you merge A <-B and retarget A <- C there are conflicts. Bottom line is, merge conflicts |
|
I've been using a different workflow to retarget these chained PRs:
Doing it this way doesn't introduce any conflicts. |
ad04a8d to
9d8e981
Compare
| If this is the first time you compile the Kubernetes core implementation module, run the following command to install the dependencies and compile: | ||
|
|
||
| build/mvn install -Pkubernetes -pl resource-managers/kubernetes/core -am -DskipTests | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mccheah accidental deletion here?
ae0f1f7 to
e03492b
Compare
ash211
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks right now, ready to merge when tests pass
Closes #235 and requires #444.