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
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ö.
Om du vill skapa en anpassad kanal installerar du conda-build.
conda install conda-build
- 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
- 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.
- 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
- 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.
- 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
- 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
- Visa standardbiblioteken: Stöd för Apache Spark-version
- Hantera Python-paket på sessionsnivå: Python-pakethantering i notebook-session