docs(cloud/databricks): replace unavailable Project Glow image with image-free setup - #15529
Open
ramGoli wants to merge 3 commits into
Open
docs(cloud/databricks): replace unavailable Project Glow image with image-free setup#15529ramGoli wants to merge 3 commits into
ramGoli wants to merge 3 commits into
Conversation
…mage-free setup The documented projectglow/databricks-hail image is no longer pullable (layers purged from Docker Hub; cluster launch fails). Replace it with a self-contained init-script setup that installs current Hail at cluster start, and document the JDK 17 requirement and the base-Python numpy/pyarrow pitfall. Drafted with Claude Code.
…REDENTIALS Address review feedback: show the exact notebook snippet (before hl.init) and the minimal service-account stub, verified sufficient for Hail startup on AWS/Azure. Drafted with Claude Code.
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the Databricks documentation to remove reliance on the now-unavailable Project Glow Docker image and instead describe an init-script-based installation that puts the Hail JAR on the Spark classpath and installs the Python package in the notebook.
Changes:
- Replaces the container-based instructions with an init script + cluster configuration (including Kryo settings and JDK selection).
- Adds guidance on avoiding base-Python installs and notes on reading/writing data paths in Databricks/Unity Catalog.
- Keeps existing Databricks-specific guidance for
hl.init(sc=...)and Bokeh display, and demotes Container Services to an optional alternative.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… clarify %pip scope Address review feedback: - Pin the same Hail version in the init script and the notebook %pip install so the classpath JAR and the Python package cannot diverge. - Clarify that %pip restarts the notebook Python process but does not modify the runtime's base Python environment. Drafted with Claude Code.
Author
|
hi @ehigham ! I validated with another customer who were able use the updated instructions to run Hail on Databricks. Please let me know if there is anything else you need from my end to merge this PR |
Author
|
hi @ehigham any update on merging the doc? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The Databricks page currently instructs users to run Hail via Databricks Container Services using the image
projectglow/databricks-hail:<version>. That image is no longer usable: the newest tag is0.2.93(pushed June 2022) and Docker Hub has purged the layers, so provisioning a cluster with it fails at launch (Failed to set up docker container due to a docker image pull failure), and the manifest request now returns HTTP 401. The Dockerfiles linked atgithub.com/projectglow/glow/tree/master/dockerare also no longer at that path. So the documented method is currently a dead end.This rewrites
cloud/databricks.rstto a self-contained, image-free setup that installs current Hail at cluster start (init script + cluster config), so there is no third-party image to rot. It also documents two requirements the previous page omitted that are necessary on modern runtimes:JNAME=zulu17-ca-amd64on DBR 15.4 LTS).pip install hailpulls numpy 2.x and breaks the runtime's pre-built pyarrow, which prevents the notebook Python kernel from starting (it surfaces as "Could not reach driver"). The init script installs the jar viapip --target(base Python untouched) and the notebook installs the package via%pip.The
hl.init(sc=...), initialization, and Bokeh sections are preserved. Databricks Container Services is kept only as an optional note for sites that require a locked-down image (which they must then build and maintain themselves).Validation
Validated on Databricks Runtime 15.4 LTS (Apache Spark 3.5.0, Scala 2.12), Hail 0.2.138, AWS:
hl.init(sc=...)on the distributed Spark backend, single-node and multi-node (alinear_regression_rowsGWAS ran distributed across multiple worker hosts;variant_qc,sample_qc, and largerange_tablejobs all succeeded).s3://gnomad-public-us-east-1/...(opened the 9,997-partition table and read allele frequencies) on a Dedicated/Unity Catalog cluster./dbfs.Notes for reviewers
JNAME=zulu17-ca-amd64is the JDK 17 selector verified on DBR 15.4 LTS; maintainers may want to confirm the appropriate value for other runtime versions.GOOGLE_APPLICATION_CREDENTIALSdummy-credentials step is included as a safe default for Hail's startup GCS initialization on AWS/Azure.Drafted with Claude Code.