ArcGIS Notebook Server incluye dos tiempos de ejecución de notebook (recopilaciones de módulos de Python). Estos tiempos de ejecución están disponibles para los usuarios de los notebooks mediante imágenes de contenedor, que se aplican a cada contenedor ejecutado en el sitio de su servidor.
Tanto el tiempo de ejecución Standard como Advanced del notebook incluyen ArcGIS API for Python y diferentes módulos de Python que pueden utilizarse para ciencia de datos, análisis espacial, administración de contenido y administración. El tiempo de ejecución Advanced también incluye ArcPy.
Consultar la lista de bibliotecas de Python disponibles
En algunos casos, es posible que los autores de su notebook necesiten módulos o versiones específicas de los mismos que no se incluyen en estos dos tiempos de ejecución. Puede acceder a módulos adicionales de Python en ArcGIS Notebook Server de estas formas:
- Instale un módulo de Python durante una sesión del notebook. Esto hará que el módulo esté disponible para ser utilizado en ese notebook.
- Amplíe una imagen de contenedor de Esri para que incluya bibliotecas de Python adicionales en un tiempo de ejecución personalizado. La imagen de contenedor que cree hará que el tiempo de ejecución ampliado quede a disposición de todos los autores de notebooks de su sitio.
Instalar módulos durante una sesión
Los autores de notebooks pueden hacer que los módulos o las versiones de los módulos de Python que no se incluyen en los tiempos de ejecución estén disponibles para su uso durante una sesión del notebook mediante los sistemas de administración de paquetes de conda o pip. Le recomendamos utilizar conda, porque ArcGIS Notebook Server lo usa para administrar módulos; no obstante, algunos módulos de Python solo están disponibles en pip.
Este método instala el módulo deseado durante la sesión del notebook. Una vez que se cierra el notebook o que termina el contenedor que pertenece al usuario, el módulo deja de estar disponible. Para instalar módulos con este método, los usuarios deben poder conectarse a través de Internet con el canal conda o pip.
Nota:
Tanto conda como pip están incluidos en los dos tiempos de ejecución del notebook y no es necesario instalarlos.
Para instalar el paquete scrapy durante una sesión, por ejemplo, ejecute una celda del notebook con uno de los siguientes comandos, en función del sistema de administración de paquetes que esté utilizando:
Uso del sistema de administración de paquetes conda
!conda install --yes scrapy
Uso del sistema de administración de paquetes pip
!pip install scrapy
Para utilizar una versión diferente de un módulo de Python en el tiempo de ejecución del notebook en el que está trabajando, indique el número de la versión en el comando.
Debe reiniciar el kernel después de ejecutar un comando conda o pip para que su nuevo paquete esté disponible.
Por ejemplo, un paquete determinado está disponible en ambos tiempos de ejecución de notebook en la versión 1.5, pero usted quiere usar una herramienta introducida en la versión 1.6. Para que la versión 1.6 del paquete esté disponible durante una sesión de notebook, ejecute una celda del notebook con uno de los siguientes comandos, en función del sistema de administración de paquetes que esté utilizando:
Uso del sistema de administración de paquetes conda
!conda install --yes <package name>==1.6
Uso del sistema de administración de paquetes pip
!pip install <package name>==1.6
Crear una imagen de contenedor personalizada
Para realizar cambios persistentes en el tiempo de ejecución de un notebook, puede crear una imagen de contenedor personalizada en un sitio. El siguiente flujo de trabajo, que necesita privilegios administrativos, crea una imagen personalizada y configura ArcGIS Notebook Server para que la utilice.
Use uno de los dos tiempos de ejecución del notebook (Standard o Advanced) como punto de partida. Cuando haya creado su tiempo de ejecución personalizado, puede registrarlo como nuevo tiempo de ejecución en su sitio.
- Instale y configure ArcGIS Notebook Server.
- Inicie sesión en el Directorio de administrador de ArcGIS Notebook Server como administrador.
La URL está en el formato https://notebookserver.domain.com:11443/arcgis/admin/.
- Haga clic en notebooks > tiempos de ejecución y seleccione el tiempo de ejecución del notebook que desea ampliar para su imagen personalizada.
En la página de recursos del tiempo de ejecución, anote el valor de imageId para este tiempo de ejecución. Deberá incluir este valor en el siguiente paso.
- Cree un Dockerfile que agregue los módulos de Python que desee a la imagen personalizada.
Un Dockerfile es un archivo de texto sencillo con instrucciones para crear una imagen de contenedor de Docker. Consulte la documentación de Dockerfile para obtener información y conocer las prácticas recomendadas.
En este ejemplo, agregará el paquete graphviz de visualización de datos de Python al tiempo de ejecución Advanced del notebook. El siguiente bloque de código en su Dockerfile ordena a Docker que acceda al tiempo de ejecución Advanced con su nombre repository y tag y que instale graphviz en el tiempo de ejecución. Puede obtener el nombre repository y tag usando el comando docker images en un equipo ArcGIS Notebook Server donde esté instalado este tiempo de ejecución. El comando conda clean es una mejor práctica para reducir el tamaño del archivo.
Utilice el comando docker images para obtener el nombre de la imagen (repositorio) y la etiqueta para un tiempo de ejecución de notebook existente.
docker images REPOSITORY TAG IMAGE ID CREATED SIZE arcgis-notebook-python-advanced 10.8.1.14362 e46a81f69ea0 12 months ago 12.4GB arcgis-notebook-python-standard 10.8.1.14362 106a660a4d0b 12 months ago 7.51GB
Cree un tiempo de ejecución personalizado agregando el paquete de visualización de datos Python graphviz al tiempo de ejecución de notebook Advanced.
# Specify the existing notebook runtime imageId as FROM FROM arcgis-notebook-python-advanced:10.8.1.14362 # Use RUN to issue a command to install, then clean RUN conda install graphviz \ && conda clean -y -a
En este ejemplo, creará un tiempo de ejecución predeterminado que incluya bibliotecas de cliente de Oracle.
## Using a Dockerfile to build a custom notebook runtime that includes Oracle client FROM arcgis-notebook-python-advanced:10.8.1.14362 ## Switch to root user for installing OS level packages. USER root ## Combine OS level statements for Docker image efficiency RUN apt-get update && \ apt-get install -y alien ## Update the url below to the desired version of Oracle client. RUN wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm RUN alien -i oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm ## Installing libaio1 is required only for Notebook runtimes version 5 (10.9) or earlier. RUN apt-get install -y libaio1 ## Switch back to arcgis user at end of the Dockerfile USER arcgis
- Guarde su Dockerfile en el equipo, en una carpeta nueva que solo contenga ese archivo.
- Cree su nueva imagen de contenedor personalizada utilizando un comando de Docker.
Esta imagen contendrá un nuevo tiempo de ejecución según lo especificado en el Dockerfile. Abra un terminal y ejecute un comando con la siguiente sintaxis:
docker build -t arcgis-notebook-python-advanced-custom:10.8.1.14362 -f /data/DockerfileDir/Dockerfile .
Nota:
Asegúrese de incluir el punto al final del comando.
Al ejecutar el comando, Docker crea la nueva imagen de contenedor. La última línea de la salida del comando será Successfully built <imageId> con el valor de id. abreviado de la nueva imagen. Debe indicar su sitio de ArcGIS Notebook Server con el valor completo de imageId.
- Ejecute el siguiente comando en su terminal para obtener el valor de Id. de imagen:
docker inspect <imageId>
Si tiene un sitio Notebook Server con un único equipo, puede omitir los pasos del 8 al 10. Si tiene un sitio Notebook Server con varios equipos, complete los pasos del 8 al 10.
- Guarde la imagen Docker personalizada como un archivo *.tar con docker save.
Abra una ventana de comando en el equipo Notebook Server donde está instalada la imagen de tiempo de ejecución personalizada y ejecute el siguiente comando para guardar la imagen de tiempo de ejecución personalizada como un archivo *.tar.
docker save arcgis-notebook-python-advanced-custom:10.9.1.28156 > arcgis-notebook-python-advanced-custom.tar
- En cada equipo donde esté instalado Notebook Server, cargue la imagen de tiempo de ejecución personalizada usando la utilidad de postinstalación ArcGIS Notebook Server.
- Abra una ventana de comando como administrador.
- Cambie los directorios a la carpeta de la utilidad de postinstalación ArcGIS Notebook Server.
La ruta predeterminada es ${HOME}/arcgis/notebookserver/tools/postInstallUtility.
- Instale la imagen de Docker personalizada especificando su ruta de archivo.
./PostInstallUtility.sh -l <path of .tar Custom Docker image>
- Repita el paso 9 en cada equipo participante en su sitio de ArcGIS Notebook Server.
Ya se ha creado su imagen personalizada y tiene su valor de imageId al completo, que utilizará para registrarlo con el sitio de ArcGIS Notebook Server en la sección siguiente.
Registrar un nuevo tiempo de ejecución en Manager
A partir de 10.8, puede utilizar ArcGIS Notebook Server Manager para registrar un tiempo de ejecución personalizado que haya creado.
- Inicie sesión en su portal de ArcGIS Enterprise como administrador y abra ArcGIS Notebook Server Manager.
- Abra la página Configuración y haga clic en Tiempos de ejecución.
- Haga clic en Registrar tiempo de ejecución para abrir el cuadro de diálogo de registro.
- Especifique los valores adecuados para completar el registro.
Parámetro Detalles Nombre
(Requerido)
Una cadena para representar el nuevo tiempo de ejecución, por ejemplo, "Notebook Custom Runtime Python 3".
Id. de imagen
(Requerido)
Id. completo (no truncado) para la nueva imagen de Docker, cuando se creó.
Tipo de contenedor
(Opcional)
El único valor válido es docker.
Privilegios avanzados
(Requerido)
Active si el tiempo de ejecución requiere el privilegio Notebooks avanzados.
Cadena de pull de imagen
(Opcional)
No aplicable.
CPU máx.
(Requerido)
El número máximo de CPU que se deben utilizar para cada contenedor.
Memoria máx.
(Requerido)
La cantidad máxima de memoria que se debe utilizar para cada contenedor.
Unidad de memoria máx.
(Requerido)
La unidad especificada por el parámetro maxMemory.
Memoria de intercambio máx.
(Opcional)
La cantidad máxima de memoria de intercambio disponible para cada contenedor si se alcanza el límite de maxMemory.
Unidad de memoria de intercambio máx.
(Opcional)
La unidad especificada por el parámetro maxSwapMemory.
Memoria compartida
(Opcional)
Cantidad de memoria compartida para cada contenedor.
Unidad de memoria compartida
(Opcional)
La unidad especificada por el parámetro sharedMemory.
Manifiesto de biblioteca
(Opcional)
La ruta completa a un archivo *.json (en codificación UTF-8 o ANSI) que contiene la lista de bibliotecas Python del tiempo de ejecución.
Docker runtime
(Opcional)
Solo se aplica a los tiempos de ejecución de GPU en entornos Linux.
Nota:
Para crear un archivo de manifest.json, abra un terminal en el equipo ArcGIS Notebook Server en el que se encuentra instalada la imagen de tiempo de ejecución de notebook y ejecute el comando siguiente:
ID=$(docker container run -d --rm -it -v /:/host <custom_runtime_image_ID> /bin/bash) && docker exec -it $ID /opt/conda/bin/conda list --json >> ~/manifest.json && docker kill $ID
- Cuando tenga todo listo, haga clic en Guardar para registrar el nuevo tiempo de ejecución.
- Abra un nuevo notebook para probar esta actualización. Compruebe que los módulos o las versiones de los módulos que agregó a su imagen personalizada estén disponibles en el notebook.
Para devolver los tiempos de ejecución de su sitio de ArcGIS Notebook Server a la configuración original, utilice la operación Restaurar tiempos de ejecución de fábrica en el Directorio de administrador. Esta operación está disponible en https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore y solo restaurará los tiempos de ejecución de fábrica de la versión actual de su sitio.