Skip To Content

Ampliar el tiempo de ejecución de un notebook

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.

  1. Instale y configure ArcGIS Notebook Server.
  2. 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/.

  3. 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.

  4. 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 valor imageId y que instale graphviz en el tiempo de ejecución. El comando conda clean es una mejor práctica para reducir el tamaño del archivo.

    # Specify the existing notebook runtime imageId as FROM
    FROM aa7a1a346e5b
    
    # 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 <replace with imageId of standard or advanced container image>
    
    ## 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
  5. Guarde su Dockerfile en el equipo, en una carpeta nueva que solo contenga ese archivo.
  6. 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 la ventana de comando y ejecute un comando con la siguiente sintaxis:

    docker build -t <name of my new runtime>:v1.0 -f <path to my Dockerfile> .
    Nota:

    Asegúrese de incluir el punto al final del comando.

    Cuando se ejecute 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.

  7. Ejecute el siguiente comando en la ventana de comando para obtener el valor de Id. de imagen:

    docker inspect <imageId>

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.

  1. Inicie sesión en su portal de ArcGIS Enterprise como administrador y abra ArcGIS Notebook Server Manager.
  2. Abra la página Configuración y haga clic en Tiempos de ejecución.
  3. Haga clic en Registrar tiempo de ejecución para abrir el cuadro de diálogo de registro.
  4. Especifique los valores adecuados para completar el registro.

    ParámetroDetalles
    Name

    Una cadena que representa el nuevo tiempo de ejecución, por ejemplo, "Notebook Custom Runtime Python 3".

    Version

    La versión del tiempo de ejecución proporcionado por Esri que utilizó como imagen base de Docker.

    Image ID

    Id. completo (no truncado) de la nueva imagen de Docker, referido al momento en que se creó la imagen.

    Container Type

    (Opcional) El único valor válido es "Docker".

    Image pull string

    (Opcional) No aplicable.

    Advanced privileges required?

    Active esta casilla si el nuevo tiempo de ejecución de notebook es una extensión del tiempo de ejecución ArcGIS Notebook Python 3 Advanced y requiere el privilegio Notebooks avanzados para su uso.

    Max CPU

    El número máximo de CPU que se deben utilizar para cada contenedor.

    Max memory

    La cantidad máxima de memoria que se debe utilizar para cada contenedor.

    Max memory unit

    La unidad especificada por el parámetro Memoria máx.

    Max swap memory

    (Opcional) La cantidad máxima de memoria de intercambio disponible para cada contenedor si se alcanza el límite de Memoria máx.

    Max swap memory unit

    (Opcional) La unidad especificada por el parámetro Memoria de intercambio máx.

    Shared memory

    (Opcional) La cantidad de memoria compartida para cada contenedor.

    Shared memory unit

    (Opcional) La unidad especificada por el parámetro Memoria compartida.

    Docker runtime

    (Opcional) Solo se aplica a los tiempos de ejecución de GPU. Más información

    Library manifest

    (Opcional) Cargue un archivo en formato JSON que contenga una lista de las bibliotecas de Python incluidas con este tiempo de ejecución.

    Format

    El formato de respuesta predeterminado. El formato de respuesta predeterminado es html.

    Valor: html | json | pjson

    Nota:

    Para crear un archivo de manifest.json, abra una ventana de Powershell 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 >> ~\Desktop\manifest.json; docker kill $ID
  5. Cuando tenga todo listo, haga clic en Guardar para registrar el nuevo tiempo de ejecución.
  6. 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.