Creación de un canal de Conda personalizado para la administración de paquetes
Al instalar paquetes de Python, el administrador de paquetes de Conda usa canales para buscar paquetes. Es posible que tenga que crear un canal de Conda personalizado por varios motivos. Por ejemplo:
- El área de trabajo está protegida contra la filtración de datos y las conexiones salientes están bloqueadas.
- Tiene paquetes que no quiere que se carguen en repositorios públicos.
- Quiere configurar un repositorio alternativo para los usuarios dentro de su área de trabajo.
En este artículo, encontrará una guía paso a paso que le ayudará a crear su canal de Conda personalizado dentro de su cuenta de Azure Data Lake Storage.
Configuración de la máquina local
Instale Conda en la máquina local. Puede consultar el entorno de ejecución de Spark en Azure Synapse para identificar la versión de Conda que se usa en el mismo entorno en tiempo de ejecución.
Para crear un canal personalizado, instale conda-build.
conda install conda-build
- Organice todos los paquetes para la plataforma que quiere atender. En este ejemplo, se instalará el archivo Anaconda en la máquina local.
sudo wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh
sudo chmod +x Anaconda3-4.4.0-Linux-x86_64.sh
sudo bash Anaconda3-4.4.0-Linux-x86_64.sh -b -p /usr/lib/anaconda3
export PATH="/usr/lib/anaconda3/bin:$PATH"
sudo chmod 777 -R /usr/lib/anaconda3
- Para crear un entorno similar al que se crea que esté disponible en el tiempo de ejecución de Azure Synapse, puede descargar esta plantilla. Puede haber pequeñas diferencias entre la plantilla y el entorno real de Azure Synapse. Una vez descargada, puede ejecutar el siguiente comando:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml
Montaje de la cuenta de almacenamiento en la máquina
A continuación, montaremos la cuenta Azure Data Lake Storage Gen2 en la máquina local. Este proceso también se puede realizar con una cuenta de WASB. Sin embargo, veremos un ejemplo con la cuenta de ADLSg2
Para obtener más información sobre cómo montar la cuenta de almacenamiento en la máquina local, puede visitar esta página.
- Puede instalar blobfuse desde el repositorio de software de Linux para productos de Microsoft.
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install blobfuse fuse
export AZURE_STORAGE_ACCOUNT=<storage-account-name>
export AZURE_STORAGE_SAS_TOKEN="<SAS>"
export AZURE_STORAGE_BLOB_ENDPOINT=*.dfs.core.windows.net
- Cree el punto de montaje (
mkdir /path/to/mount
) y monte un contenedor de blobs con blobfuse. En este ejemplo, usaremos el valor privatechannel para la variable mycontainer.
sudo mkdir /home/trusted-service-user/privatechannel
sudo mkdir -p /mnt/blobfusetmp
blobfuse /home/trusted-service-user/privatechannel --container-name=privatechannel --tmp-path=/mnt/blobfusetmp --use-adls=true --log-level=LOG_DEBUG
sudo chown trusted-service-user /mnt/blobfusetmp
Creación del canal
En el siguiente conjunto de pasos, crearemos un canal de Conda personalizado.
- En la máquina local, cree un directorio para organizar todos los paquetes para el canal personalizado. Organice todos los paquetes
tar.bz2
de https://repo.anaconda.com/pkgs/main/linux-64/ en el subdirectorio. Asegúrese de incluir también todos los paquetes tar.bz2 dependientes.
cd ~/privatechannel/
mkdir -p channel/linux64
<Add all .tar.bz2 from https://repo.anaconda.com/pkgs/main/linux-64/>
// Note: Add all dependent .tar.bz2 as well
cd channel
mkdir noarch
echo '{}' > noarch/repodata.json
bzip2 -k noarch/repodata.json
// Create channel
conda index channel/noarch
conda index channel/linux-64
conda index channel
- Ahora, puede comprobar la cuenta de almacenamiento donde se habría creado su directorio
privatechannel/channel
.
Nota
Conda no respeta el token de SAS asociado a un contenedor. Por lo tanto, debe marcar el contenedor "privatechannel" como de acceso público.
Para obtener más información, también puede visitar la guía de usuario de Conda para crear canales personalizados.
Permisos de la cuenta de almacenamiento
Ahora, tendrá que validar los permisos en la cuenta de almacenamiento. Para establecer estos permisos, vaya a la ruta de acceso donde se creará el canal personalizado. A continuación, cree un token de SAS para privatechannel
que tenga permisos de lectura, lista y ejecución.
El nombre del canal ahora será la dirección URL de SAS del blob que se genera a partir de este proceso.
Creación de un archivo de configuración de ejemplo para el entorno de Conda
Por último, compruebe el proceso de instalación mediante la creación de un archivo environment.yml
de Conda de muestra. Si tiene un área de trabajo compatible con la protección contra la filtración de datos, debe especificar el canal nodefaults
en el archivo del entorno.
Este es un ejemplo de archivo de configuración de Conda:
name: sample
channels:
- https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
- nodefaults
dependencies:
- openssl
- ncurses
Una vez que haya creado el archivo de Conda de ejemplo, puede crear un entorno de Conda virtual. Puede comprobarlo localmente ejecutando el siguiente comando:
conda env create --file sample.yml
source activate env
conda list
Ahora que ha comprobado el canal personalizado, puede usar el proceso de administración de grupos de Python para actualizar las bibliotecas en el grupo de Apache Spark.
Pasos siguientes
- Visualización de las bibliotecas predeterminadas: Compatibilidad de las versiones de Azure Spark
- Administración de paquetes de Python de nivel de sesión: administración de paquetes de Python en la sesión de Notebook