Tworzenie niestandardowego kanału Conda na potrzeby zarządzania pakietami
Podczas instalowania pakietów języka Python menedżer pakietów Conda używa kanałów do wyszukiwania pakietów. Może być konieczne utworzenie niestandardowego kanału Conda z różnych powodów. Można na przykład stwierdzić, że:
- Obszar roboczy jest chroniony przez eksfiltrację danych, a połączenia wychodzące są blokowane.
- Masz pakiety, których nie chcesz przekazywać do repozytoriów publicznych.
- chcesz skonfigurować alternatywne repozytorium dla użytkowników w obszarze roboczym.
W tym artykule udostępnimy przewodnik krok po kroku, który pomoże Ci utworzyć niestandardowy kanał Conda na koncie Azure Data Lake Storage.
Konfigurowanie komputera lokalnego
Zainstaluj środowisko Conda na komputerze lokalnym. Możesz odwołać się do środowiska uruchomieniowego platformy Azure Synapse Spark, aby zidentyfikować wersję conda używaną w tym samym środowisku uruchomieniowym.
Aby utworzyć niestandardowy kanał, zainstaluj środowisko conda-build.
conda install conda-build
- Organizuj wszystkie pakiety w programie dla platformy, którą chcesz obsłużyć. W tym przykładzie zainstalujemy archiwum Anaconda na komputerze lokalnym.
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
- Aby utworzyć podobne środowisko do tego, co jest tworzone w środowisku uruchomieniowym Azure Synapse, możesz pobrać ten szablon. Mogą wystąpić niewielkie różnice między szablonem a rzeczywistym środowiskiem Azure Synapse. Po pobraniu możesz uruchomić następujące polecenie:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml
Instalowanie konta magazynu na maszynie
Następnie zainstalujemy konto Azure Data Lake Storage Gen2 na komputerze lokalnym. Ten proces można również wykonać przy użyciu konta WASB; jednak przejdziemy przez przykład dla konta ADLSg2
Aby uzyskać więcej informacji na temat sposobu instalowania konta magazynu na komputerze lokalnym, możesz odwiedzić tę stronę.
- Program blobfuse można zainstalować z repozytorium oprogramowania systemu Linux dla produktów firmy 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
- Utwórz punkt instalacji (
mkdir /path/to/mount
) i zainstaluj kontener obiektów blob za pomocą narzędzia blobfuse. W tym przykładzie użyjemy wartości privatechannel dla zmiennej 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
Tworzenie kanału
W następnym zestawie kroków utworzymy niestandardowy kanał Conda.
- Na komputerze lokalnym utwórz katalog, aby zorganizować wszystkie pakiety dla kanału niestandardowego. Organizuj
tar.bz2
wszystkie pakiety z https://repo.anaconda.com/pkgs/main/linux-64/ do podkatalogu. Należy również uwzględnić wszystkie zależne pakiety tar.bz2.
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
- Teraz możesz sprawdzić konto magazynu, na którym
privatechannel/channel
zostałby utworzony katalog.
Uwaga
Conda nie honoruje tokenu SAS skojarzonego z kontenerem. W związku z tym należy oznaczyć kontener "privatechannel" jako dostęp publiczny.
Aby uzyskać więcej informacji, możesz również odwiedzić przewodnik użytkownika aplikacji Conda dotyczący tworzenia kanałów niestandardowych.
Uprawnienia konta magazynu
Teraz musimy zweryfikować uprawnienia na koncie magazynu. Aby ustawić te uprawnienia, przejdź do ścieżki, w której zostanie utworzony kanał niestandardowy. Następnie utwórz token SYGNATURy dostępu współdzielonego, privatechannel
który ma uprawnienia do odczytu, wyświetlania listy i wykonywania.
Nazwa kanału będzie teraz adresem URL sygnatury dostępu współdzielonego obiektu blob wygenerowanego na podstawie tego procesu.
Tworzenie przykładowego pliku konfiguracji środowiska Conda
Na koniec zweryfikuj proces instalacji, tworząc przykładowy plik Conda environment.yml
. Jeśli masz włączoną ochronę przed eksfiltracją danych, musisz określić nodefaults
kanał w pliku środowiska.
Oto przykładowy plik konfiguracji Conda:
name: sample
channels:
- https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
- nodefaults
dependencies:
- openssl
- ncurses
Po utworzeniu przykładowego pliku Conda możesz utworzyć wirtualne środowisko Conda. Możesz to sprawdzić lokalnie, uruchamiając następujące polecenia:
conda env create --file sample.yml
source activate env
conda list
Po zweryfikowaniu kanału niestandardowego możesz użyć procesu zarządzania pulą języka Python , aby zaktualizować biblioteki w puli apache Spark.
Następne kroki
- Wyświetlanie bibliotek domyślnych: obsługa wersji platformy Apache Spark
- Zarządzanie pakietami języka Python na poziomie sesji: zarządzanie pakietami języka Python w sesji notesu