Dela via


Skapa en anpassad Conda-kanal för pakethantering

När du installerar Python-paket använder Conda-pakethanteraren kanaler för att leta efter paket. Du kan behöva skapa en anpassad Conda-kanal av olika skäl. Du kan till exempel se följande:

  • din arbetsyta är dataexfiltreringsskyddade och utgående anslutningar blockeras.
  • du har paket som du inte vill ladda upp till offentliga lagringsplatser.
  • du vill konfigurera en alternativ lagringsplats för användarna på din arbetsyta.

I den här artikeln tillhandahåller vi en stegvis guide som hjälper dig att skapa din anpassade Conda-kanal i ditt Azure Data Lake Storage-konto.

Konfigurera din lokala dator

  1. Installera Conda på den lokala datorn. Du kan referera till Azure Synapse Spark-körningen för att identifiera den Conda-version som används på samma körningsmiljö.

  2. Om du vill skapa en anpassad kanal installerar du conda-build.

conda install conda-build
  1. Organisera alla paket i för den plattform som du vill hantera. I det här exemplet installerar vi Anaconda-arkivet på den lokala datorn.
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  
  1. Om du vill skapa en liknande miljö som den som skapas i Azure Synapse-körningen kan du ladda ned den här mallen. Det kan finnas små skillnader mellan mallen och den faktiska Azure Synapse-miljön. När du har laddat ned kan du köra följande kommando:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml

Montera lagringskontot på datorn

Därefter monterar vi Azure Data Lake Storage Gen2-kontot på din lokala dator. Den här processen kan också göras med ett WASB-konto. Vi går dock igenom ett exempel för ADLSg2-kontot

Mer information om hur du monterar lagringskontot på den lokala datorn finns på den här sidan.

  1. Du kan installera blobfuse från Linux Software Repository för Microsoft-produkter.
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
  1. Skapa din monteringspunkt (mkdir /path/to/mount) och montera en blobcontainer med blobfuse. I det här exemplet ska vi använda värdet privatechannel för variabeln 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 

Skapa kanalen

I nästa uppsättning steg skapar vi en anpassad Conda-kanal.

  1. På den lokala datorn skapar du en katalog för att organisera alla paket för din anpassade kanal. Organisera alla tar.bz2 paket från https://repo.anaconda.com/pkgs/main/linux-64/ till underkatalogen. Se även till att inkludera alla beroende tar.bz2-paket.

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
  1. Nu kan du kontrollera lagringskontot där katalogen privatechannel/channel skulle ha skapats.

Anteckning

Conda respekterar inte den SAS-token som är associerad med en container. Därför måste du markera containern "privatechannel" som offentlig åtkomst.

Mer information finns i Conda-användarhandboken för att skapa anpassade kanaler.

Behörigheter för lagringskonto

Nu måste vi verifiera behörigheterna för lagringskontot. Om du vill ange dessa behörigheter navigerar du till sökvägen där den anpassade kanalen skapas. Skapa sedan en SAS-token för privatechannel som har läs-, list- och körningsbehörigheter.

Kanalnamnet är nu blob-SAS-URL:en som genereras från den här processen.

Skapa en conda-exempelmiljökonfigurationsfil

Kontrollera slutligen installationsprocessen genom att skapa en Conda-exempelfil environment.yml . Om du har aktiverat en arbetsyta för dataexfiltreringsskydd måste du ange nodefaults kanalen i din miljöfil.

Här är ett exempel på conda-konfigurationsfilen:

name: sample 
channels: 
  - https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
  - nodefaults 
dependencies: 
  - openssl 
  - ncurses 

När du har skapat Conda-exempelfilen kan du skapa en virtuell Conda-miljö. Du kan kontrollera detta lokalt genom att köra följande kommandon:

conda env create --file sample.yml  
source activate env 
conda list 

Nu när du har verifierat din anpassade kanal kan du använda Python-poolhanteringsprocessen för att uppdatera biblioteken i Apache Spark-poolen.

Nästa steg