Creare un canale Conda personalizzato per la gestione dei pacchetti
Quando si installano pacchetti Python, la gestione dei pacchetti Conda usa i canali per cercare i pacchetti. Potrebbe essere necessario creare un canale Conda personalizzato per vari motivi. Ad esempio, è possibile che:
- l'area di lavoro è protetta dall'esfiltrazione dei dati e le connessioni in uscita sono bloccate.
- si dispone di pacchetti che non si desidera caricare nei repository pubblici.
- si desidera configurare un repository alternativo per gli utenti all'interno dell'area di lavoro.
Questo articolo fornisce una guida dettagliata per creare il canale Conda personalizzato all'interno dell'account di Azure Data Lake Storage.
Configurare il computer locale
Installare Conda nel computer locale. È possibile fare riferimento al runtime di Azure Synapse Spark per identificare la versione di Conda usata nello stesso runtime.
Per creare un canale personalizzato, installare conda-build.
conda install conda-build
- Organizzare tutti i pacchetti per la piattaforma che si desidera servire. In questo esempio verrà installato l'archivio Anaconda nel computer locale.
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
- Per creare un ambiente simile a quello creato nel runtime di Azure Synapse, è possibile scaricare questo modello. Potrebbero esserci lievi differenze tra il modello e l'ambiente Azure Synapse effettivo. Dopo il download, è possibile eseguire il comando seguente:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml
Montare l'account di archiviazione nel computer
Successivamente, monteremo l'account Azure Data Lake Storage Gen2 nel computer locale. Questo processo può essere eseguito anche con un account WASB.Tuttavia, verrà illustrato un esempio per l'account ADLSg2
Per altre informazioni su come montare l'account di archiviazione nel computer locale, è possibile visitare questa pagina.
- È possibile installare blobfuse dal repository software Linux per i prodotti 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
- Creare il punto di montaggio (
mkdir /path/to/mount
) e montare un contenitore BLOB con blobfuse. In questo esempio si userà il valore privatechannel per la variabile 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
Creare il canale
Nel set di passaggi successivo verrà creato un canale Conda personalizzato.
- Nel computer locale creare una directory per organizzare tutti i pacchetti per il canale personalizzato. Organizzare tutti i pacchetti
tar.bz2
da https://repo.anaconda.com/pkgs/main/linux-64/ nella sottodirectory. Assicurarsi anche di includere anche tutti i pacchetti tar.bz2 dipendenti.
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
- È ora possibile controllare l'account di archiviazione in cui sarebbe stata creata la directory
privatechannel/channel
.
Nota
Conda non rispetta il token SAS associato a un contenitore. Pertanto, è necessario contrassegnare il contenitore "privatechannel" come accesso pubblico.
Per altre informazioni, è anche possibile visitare la Guida per l'utente di Conda per la creazione di canali personalizzati.
Autorizzazioni dell'account di archiviazione
Sarà ora necessario convalidare le autorizzazioni per l'account di archiviazione. Per impostare queste autorizzazioni, andare al percorso in cui verrà creato il canale personalizzato. Creare quindi un token SAS per privatechannel
che disponga di autorizzazioni di lettura, elenco ed esecuzione.
Il nome del canale sarà ora l'URL SAS del BLOB generato da questo processo.
Creare un file di configurazione dell'ambiente Conda di esempio
Verificare infine il processo di installazione creando un file Conda environment.yml
di esempio. Se si dispone di un'area di lavoro abilitata per la protezione dall'esfiltrazione dei dati, è necessario specificare il canale nodefaults
nel file di ambiente.
Di seguito è riportato un esempio di file di configurazione Conda:
name: sample
channels:
- https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
- nodefaults
dependencies:
- openssl
- ncurses
Dopo aver creato il file Conda di esempio, è possibile creare un ambiente Conda virtuale. È possibile verificarlo in locale eseguendo i comandi seguenti:
conda env create --file sample.yml
source activate env
conda list
Dopo aver verificato il canale personalizzato, è possibile usare il processo di gestione del pool Python per aggiornare le librerie nel pool di Apache Spark.
Passaggi successivi
- Visualizzare le librerie predefinite: supporto della versione di Apache Spark
- Gestire i pacchetti Python a livello di sessione: gestione dei pacchetti Python nella sessione di notebook