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 un 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 del 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á las bibliotecas del cliente de SQL Server 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 que tag instale bibliotecas del cliente de SQL Server 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.

    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 las bibliotecas del cliente de SQL Server al tiempo de ejecución Advanced del notebook.

    En los contenedores de Linux, ejecute el siguiente comando:

    FROM arcgis-notebook-python-advanced:11.1.0.42869
            
    USER root
            
    RUN apt-get update -y && \
    	apt-get install vim wget curl unzip gzip ca-certificates odbcinst1debian2 -y --no-install-recommends
            
    RUN apt-get install --reinstall software-properties-common -y
            
    RUN add-apt-repository 'ppa:deadsnakes/ppa'
    RUN apt-get update
    RUN apt-get install -y python3.7 python3-pip
            
    # Install system DB drivers
    #
    # Add SQL Server ODBC Driver 18.1 for Ubuntu 22.04
    #
    # NOTE: Only msodbcsql 18.1 is supported on Ubuntu 22.04
    # Run apt list -a msodbcsql18 to check for newer release version
    RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    	curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
    	apt-get update && \
    	ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql18=18.1.1.1-1 && \
    	apt-get install -y --allow-unauthenticated unixodbc-dev
            
    RUN rm -rf /var/lib/apt/lists/*
            
    USER $NB_UID

    En los contenedores de Windows, ejecute el siguiente comando:

    FROM arcgis-notebook-python-windows:11.1.0.42869
    
    USER ContainerAdministrator
    
    # Install SQL Server ODBC Driver
    
    RUN powershell -Command $ErrorActionPreference = 'Stop' ; \
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; \
        Invoke-WebRequest $('https://go.microsoft.com/fwlink/?linkid=2223270') -OutFile 'msodbcsql.msi' -UseBasicParsing ; \
        Start-Process msiexec '/i msodbcsql.msi /qb IACCEPTMSODBCSQLLICENSETERMS=YES' -Wait ; \
        Remove-Item msodbcsql.msi -Force
    
    USER arcgis
  5. Guarde su Dockerfile en el equipo, en una carpeta nueva que solo contenga ese archivo.
  6. Cree una imagen de contenedor personalizada utilizando un comando 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:

    cd C:\DockerfileDir
    docker build -t arcgis-notebook-python-advanced-custom:11.1.0.42869 -f 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.

  7. Ejecute el siguiente comando en la ventana de comando 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.

  8. 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.8.1.14362 > arcgis-notebook-python-advanced-custom.tar

  9. En cada equipo donde esté instalado Notebook Server, cargue la imagen de tiempo de ejecución personalizada usando la utilidad de postinstalación de ArcGIS Notebook Server.
    1. Abra una ventana de comando como administrador.
    2. Cambie los directorios a la carpeta de la utilidad de postinstalación de ArcGIS Notebook Server.

      La ruta predeterminada es C:\Program Files\ArcGIS\NotebookServer\tools\postInstallUtility

    3. Instale la imagen de Docker personalizada especificando su ruta de archivo.

       PostInstallUtility.bat -l <path of .tar Custom Docker image>

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

  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

    Nombre

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

    Tipo de contenedor

    El único valor válido es docker.

    CPU máx.

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

    Se requieren privilegios avanzados

    Active el botón de alternancia si el tiempo de ejecución requiere el privilegio Notebooks avanzados.

    Id. de imagen

    Id. completo (no truncado) para la nueva imagen de Docker, cuando se creó.

    Docker runtime

    Solo se aplica a los tiempos de ejecución de GPU en entornos Linux.

    Memoria máx.

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

    Unidad de memoria máx.

    La unidad especificada por el parámetro maxMemory.

    Memoria de intercambio máx.

    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.

    La unidad especificada por el parámetro maxSwapMemory.

    Memoria compartida

    Cantidad de memoria compartida para cada contenedor.

    Unidad de memoria compartida

    La unidad especificada por el parámetro sharedMemory.

    Manifiesto de biblioteca

    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.

    Nota:

    Para crear un archivo manifest.json, abra una ventana PowerShell en el equipo ArcGIS Notebook Server en el que se haya instalado la imagen de tiempo de ejecución del notebook personalizada y ejecute uno de los siguientes comandos, dependiendo de si está utilizando contenedores de Windows o Linux.

    En los contenedores de Windows, utilice el siguiente comando:

    $ID = docker run -d -it <custom_runtime_image_ID> cmd; docker exec -it $ID powershell "conda list --json >> C:\arcgis\home\manifest.json"; docker cp $ID/:C:\arcgis\home\manifest.json <existing_folder_path>; docker kill $ID; docker rm -f $ID;

    En los contenedores de Linux, utilice el siguiente comando:

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

Actualizar un tiempo de ejecución personalizado tras actualizar ArcGIS Notebook Server

Realizado los pasos siguientes para personalizar un tiempo de ejecución personalizado después de actualizar ArcGIS Notebook Server.

  1. Cree una imagen de tiempo de ejecución personalizado mediante el uso de la imagen de tiempo de ejecución de notebook.
  2. Utilice la utilidad de posintalación del servidor de notebooks para instalar la nueva imagen de tiempo de ejecución en cada equipo servidor de notebooks.
  3. Registre el nuevo tiempo de ejecución mediante el uso del administrador de ArcGIS Notebook Server.
  4. En la página de detalles de los elementos de cada notebook que utilice el tiempo de ejecución personalizado, haga clic en Configuración.
  5. Verifique y actualice el tiempo de ejecución al tiempo de ejecución personalizado recién registrado para cada equipo que utilice el tiempo de ejecución personalizado.
  6. Una vez que haya confirmado que la nueva imagen de tiempo de ejecución funciona, deje de utilizar la versión anterior del tiempo de ejecución personalizado anulando el registro del tiempo de ejecución y eliminando la imagen de tiempo de ejecución de cada equipo servidor de notebooks.

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.