-
Notifications
You must be signed in to change notification settings - Fork 28.9k
[SPARK-23529][K8s] Support mounting hostPath volumes for executors #20989
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
Conversation
|
@foxish Can you take a look?. Thanks! |
|
ok to test |
|
Test build #88960 has finished for PR 20989 at commit
|
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Kubernetes integration test starting |
|
Test build #89000 has finished for PR 20989 at commit
|
|
Kubernetes integration test status failure |
|
Test build #89003 has finished for PR 20989 at commit
|
|
Kubernetes integration test starting |
|
Kubernetes integration test status failure |
|
Kubernetes integration test starting |
|
Test build #89004 has finished for PR 20989 at commit
|
|
Kubernetes integration test status failure |
|
@foxish The failure seems to be because of |
|
hi there - you should always open PR on master. we could backport to "older releases" as needed, or ask you to open a separate PR that is based on branch-2.3 (like this one you have now) |
|
Thanks @felixcheung!. I've re targeted to master in this PR. Closing this one. |
What changes were proposed in this pull request?
This PR introduces a new config
spark.kubernetes.executor.volumestaking a values of the formhostPath:containerPath[:ro|rw][,...]; wherehostPathis the path for the executor pod volume,containerPathis the mount path androis read-only mode.The use case is to enable short-circuit writes to distributed storage on k8s. The Alluxio File System uses domain sockets to enable short-circuit writes from the client to worker memory when co-located on the same host machine. A directory, lets say /tmp/domain on the host, is mounted on the Alluxio worker container as well as the Alluxio client ( = Spark executor) container. The worker creates a domain socket /tmp/domain/d and if the client container mounts the same directory, it can write directly to the Alluxio worker w/o passing through network stack. The end result is faster data access when data is local.
How was this patch tested?
Manual testing on a k8s v1.8 cluster. Unit tests added to
ExecutorPodFactorySuite.