DataHub is an open source JupyterHub distribution that provides interactive computing environments to educators and students across campus. The project has allowed Berkeley's data science program to deploy scalable Jupyter infrastructure utilizing cloud computing resources. In addition, it enables users to interact remotely with a standardized and common computing environment through any web browser. Compared to local environments that run Jupyter, a cloud-based JupyterHub provides many conveniences, including pre-installed software, quicker access to course content, and computing flexibility that enables even users on Chromebooks or iPads to run Jupyter notebook.
JupyterHub: Provides a multi-user infrastructure to manage computational resources without maintenance burdens.
Instructors and students affiliated with UC Berkeley can use this service.
Service will be available 24/7 except for the scheduled maintenance that gets performed during 1–2 week maintenance periods at the end of the fall and spring semesters.
Some maintenance tasks require temporary downtime, and any planned service interruptions will be announced in advance.
For courses where many students are expected to start their servers simultaneously (for example, during lectures, labs, or assignment deadlines), instructors can request temporary warm-up (placeholder) nodes to accommodate the increased demand.
We make every effort to keep warm-up nodes available and minimize server startup times during weekday daytime hours. Outside of these hours, startup times may be longer, as additional compute nodes may need to be provisioned and initialized, and container images may need to be pulled.
If your server has not started within 10 minutes, stop it (if applicable) and try starting it again.
Distribute course content easily using the nbgitpuller tool. You can construct a nbgitpuller link either using the web tool or using the Chrome extension, and send it to your students. When they click it, the course content will be pulled into their home directories, and the appropriate file will be opened.
To see what packages are pre-installed, click on the environment type you are using:
| Base Environment | Hub-Specific Environment | |
|---|---|---|
| Python Packages | Base Python Environment (Shared across multiple hubs) | Hub specific Python environment (Specific to this hub) |
| R Packages | Base R Environment (Common across multiple hubs) | Hub specific R environment (Specific to this hub) |
| System Packages (Linux/Apt) | Base system packages in apt.txt (Common across all hubs) | Hub specific system packages (Specific to this hub) |
If a package you need is missing from the environment, you can request it in one of two ways:
Want to install custom software without waiting for standard deployments or submitting GitHub PRs? Shared Conda Environments allow instructors and TAs to install custom packages and register new Jupyter kernels directly for their courses.
If you are interested in setting this up for your course, please submit a support request.
Yes, you can, but we strongly encourage reaching out to the admins for package installations rather than doing it yourself, as manual updates are highly error-prone! In a Jupyter Notebook, you can use !pip install package-name or !conda install package-name to install a Python package. With R, you can use install.packages(). To prevent individual user environments diverging from each other too much, your user installed packages only last the length of your server. So we recommend putting those package installation lines in the beginning of the notebook / file that you are using, so it can be run each time as necessary.