JupyterHub: Acceso a JupyterLab y RStudio en la nube#
¿Qué es Jupyter?#
Jupyter es un ecosistema abierto (open source) de computación desarrollado por el Proyecto Jupyter que incluye herramientas para el desarrollo, intercambio y presentación interactiva de código y proyectos de análisis de datos, con apoyo para una gran cantidad de lenguajes de programación (su nombre se deriva de los lenguajes de código abierto Julia, Python y R).
Más información, instrucciones y tutoriales sobre Jupyter#
Consulta nuestro tutorial sobre Jupyter del programa «Aula Invertida». Este tutorial incluye una reseña del uso de cuadernos Jupyter, instrucciones para cambiar el interfaz de JupyterLab al español, e instrucciones para instalar JupyterLab en tu computadora.
Aquí puedes acceder a un video en YouTube grabado durante el «Taller Intermedio», cuando cubrimos el tutorial de JupyterHub – el material abarcado en esta página.
Presiona aquí para leer más sobre el «ecosistema» de Jupyter
El ecosistema del Proyecto Jupyter está compuesto de tres elementos (ver «2.2 But first, what is Jupyter Notebook?»): una colección de estándares, una comunidad y una serie de herramientas de software. JupyterLab es una aplicación para crear, manejar y correr cuadernos (notebooks) Jupyter. Un cuaderno Jupyter es un documento que permite mezclar código ejecutable, ecuaciones, visualizaciones y texto narrativo formateado. Un cuaderno puede combinar en un sólo documento el código, los datos que utiliza y sus resultados, incluyendo explicaciones, gráficas y contenido multimedia, de tal modo que pueda ser compartido ampliamente y corrido por otros con relativa facilidad. El cuaderno permite la creación de narrativas computacionales interactivas y reproducibles.
El ecosistema Jupyter utiliza tecnología web que permite correr las aplicaciones en un navegador (browser) web con las computaciones ya sea en tu propia computadora («local») o a través de servicios o servidores remotos, incluyendo en la nube. Los cuadernos Jupyter y el ecosistema Jupyter hoy en día gozan de una gran popularidad en aplicaciones de ciencias de datos y aplicaciones científicas en general, especialmente con el lenguaje Python.
Entorno computacional compartido, en la nube#
Enseñar software a un grupo diverso de participantes, cada uno/a con diferentes computadoras y sistemas operativos, es un desafío. Tenemos formas específicas de configurar nuestro software para que los tutoriales sean exitosos, por lo que lleva tiempo configurarlos todos de manera consistente. Nuestra solución a este reto es brindarles a los/as participantes de eventos del OceanHackWeek en español acceso a un entorno de computación en la nube preconfigurado para el software específico que implementamos, y con flexibilidad para el desarrollo de proyectos de equipo. Se accede a este entorno de computación en la nube desde cualquier navegador web, lo que elimina la necesidad (y complicación!) de configurar la computadora individual de cada persona con las bibliotecas, dependencias y aplicaciones necesarias.
En este entorno compartido, cada usuario tiene su propia cuenta pre-configurada a los mismos entornos de Python y R y acceso a recursos computacionales idénticos. Este entorno global está basado en el sistema JupyterHub (parte del ecosistema Jupyter), el cual nos permite comenzar a trabajar rápidamente con código sin perder tiempo configurando la computadora de cada quien. JupyterHub da acceso tanto a la aplicación JupyterLab
para programar en Python (y otros lenguajes) como a la aplicación RStudio
para R. Utilizaremos estas dos aplicaciones para seguir y correr los tutoriales.
Te recomendamos que utilices nuestros recursos compartidos de JupyterHub para ejecutar todos los tutoriales y para sus proyectos. También esperamos que practiques la instalación de bibliotecas de Python y R localmente en tu computadora portátil para que puedas continuar trabajando después que concluya nuestro evento.
Acceso a «El Hub», nuestro entorno compartido en la nube#
El acceso a nuestro entorno computacional de JupyterHub en la nube («El Hub») es fácil. Accede a https://oceanhackweek.2i2c.cloud en tu navegador:
Ahora presiona el botón «Log in para continuar», y la siguiente pantalla te pedirá tu nombre de usuario y contraseña de tu cuenta de GitHub para entrar con tus credenciales de GitHub:
Presiona el botón «Sign in». La siguiente pantaya sólo aparecerá la primera vez que entres al Hub.
Presiona aquí para ver esa pantaya, con instrucciones
Esta te pide otorgar el permiso requerido a nuestro sistema de JupyterHub para combrobar tu identidad con GitHub. Presiona el botón «Authorize 2i2c-org»:
¡Ya estás adentro!#
Ahora sólo falta seleccionar el lenguaje de programación y la aplicación que deseas usar en la sesión actual: «Python en JupyterLab» o «R en RStudio»
Una vez hecha la selección, verás una notificación como esta mientras el entorno de JupyterHub está cargando:
Tomará un poco de tiempo en cargar y estar listo, especialmente la primera vez. ¡Ten paciencia! Una vez que esté listo:
¿Seleccionaste Python o R? Presiona la pestaña correspondiente
Si seleccionaste «Python», verás tu propia instancia de JupyterLab:
Si seleccionaste R, verás tu propia instancia de RStudio (en inglés):
¿Cómo cargo el repositorio de los tutoriales al Hub?#
Para los tutoriales, recomendamos el uso de nbgitpuller para clonar y extraer el repositorio de los tutoriales, o actualizar la copia que ya tienes. Utiliza el enlace mágico nbgitpuller
a continuación para lograr este clon o actualización.
Haz git pull del repositorio de los tutoriales usando la magia de nbgitpuller
El enlace nbgitpuller
es mágico, pero no puede detectar cual entorno (Python o R) estás ejecutando actualmente. Ambos enlaces, de Python y R, actualizan el mismo repositorio de tutoriales, pero pueden dar un error si utilizas el enlace de Python mientras estás en el entorno de R, o viceversa. Para subir o actualizar los tutoriales del repositorio tutorialesOHW2024
en tu cuenta en el Hub, presiona la pestaña correspondiente:
Presiona este enlace para hacer un «pull» del repositorio de los tutoriales para el entorno de Python
Presiona este enlace para hacer un «pull» del repositorio de los tutoriales para el entorno de R
Alternativa con comandos de git
(¡con cuidado!)#
Nbgitpuller
es genial, porque incorpora («merge») automáticamente cualquier cambio hecho en el Hub con cambios ocurridos en repositorio fuente cuando presionas el enlace de nueva, utilizando una serie de reglas básicas (enlace en inglés).
Puedes obtener el mismo resultado que nbgitpuller
utilizando git
directamente, pero puede requerir una combinación complicada de git add
, git stash
, git pull
, y git stash apply
para retener tus cambios junto con los cambios hechos en el repositorio fuente.
¡Atención! Si comienzas utilizando el enlace de nbgitpuller
y luego tratas de cambiar al uso de git
directamente, cuando trates de usar el enlace de nbgitpuller
de nuevo es muy probable que te encuentres con resultados impredecibles (enlace en inglés). Esto puede ser corregido borrando, moviendo o cambiando el nombre del directory de los tutoriales y utilizando nbgitpuller
de nuevo.
Cierra tu sesión en el Hub cada día. ¿Perderás todo tu trabajo?#
Es muy importante cerrar la sesión en el Hub cuando termines de usarla por el día o por un período prolongado. Esto nos ayuda a reducir el costo de la infraestructura en la nube.
Presiona la pestaña correspondiente a la sesión (entorno) que estás usando actualmente
Accede al menú Archivo > Panel de Control
:
luego presiona el botón Stop My Server
y el enlace logout
arriba a la derecha.
El menú Archivo > Cerrar sesión
en realidad no cierra la sesión del Hub, así que por favor sigue estos pasos.
Los menús File > Log out
y File > Quit session
en realidad no hacen nada! Presiona el enlace https://oceanhackweek.2i2c.cloud/hub/home, y luego presiona el botón Stop My Server
y el enlace logout
arriba a la derecha, como mencionamos en las instrtucciones de Python.
No perderás tu trabajo#
Cerrar la sesión del Hub (Stop My Server
) NO causará la pérdida de tu trabajo o archivos que has creado. Simplemente apaga algunos recursos computacionales. Es equivalente a apagar tu computadora al final del día.