Поделиться через


Создание настраиваемого канала Conda для управления пакетами

При установке пакетов Python диспетчер пакетов Conda использует каналы для поиска пакетов. В определенных ситуациях может потребоваться создать пользовательский канал Conda. Например, может оказаться, что:

  • ваша рабочая область защищена от утечек данных, и исходящие подключения блокируются;
  • у вас есть пакеты, которые не нужно передавать в общедоступные репозитории.
  • вы хотите настроить альтернативный репозиторий для пользователей в своей рабочей области.

В этой статье мы предлагаем пошаговое руководство, которое поможет вам создать пользовательский канал Conda в учетной записи Azure Data Lake Storage.

Настройка локального компьютера

  1. Установите Conda на локальном компьютере. Узнать версию Conda, используемую в вашей среде выполнения, можно в среде выполнения Azure Synapse Analytics.

  2. Чтобы создать пользовательский канал, установите пакет conda-build.

conda install conda-build
  1. Систематизируйте все пакеты для платформы, которую собираетесь обслуживать. В этом примере мы установим архив Anaconda на локальном компьютере.
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. Чтобы создать среду, аналогичную доступной в среде выполнения Azure Synapse, вы можете скачать этот шаблон. Между шаблоном и реальной средой Azure Synapse возможны небольшие различия. После скачивания вы можете запустить следующую команду:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml

Подключение учетной записи хранения на компьютере

Далее мы подключим учетную запись Azure Data Lake Storage 2-го поколения на локальном компьютере. Этот процесс также можно выполнить с помощью учетной записи WASB, однако мы рассмотрим пример для учетной записи ADLSg2.

Дополнительные сведения о том, как подключить учетную запись хранения на локальном компьютере, приведены на этой странице.

  1. Вы можете установить blobfuse из репозитория программного обеспечения Linux для продуктов Майкрософт.
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. Создайте точку подключения (mkdir /path/to/mount) и подключите контейнер больших двоичных объектов с помощью blobfuse. В этом примере мы используем значение privatechannel для переменной 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 

Создание канала

На следующем этапе действий будет создан пользовательский канал Conda.

  1. Создайте на локальном компьютере каталог для систематизации всех пакетов для своего пользовательского канала. Расположите все пакеты tar.bz2 из https://repo.anaconda.com/pkgs/main/linux-64/ в подкаталоге. Также обязательно добавьте все зависимые пакеты 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
  1. Теперь вы можете проверить учетную запись хранения, в которой был создан каталог privatechannel/channel.

Примечание

Conda не учитывает маркер SAS, связанный с контейнером. Поэтому контейнер privatechannel нужно пометить для общего доступа.

Дополнительные сведения о создании настраиваемых каналов см. в руководстве пользователя Conda.

Разрешения учетной записи хранения

Теперь необходимо проверить разрешения для учетной записи хранения. Чтобы настроить эти разрешения, перейдите по пути, по которому будет создан настраиваемый канал. Затем создайте маркер SAS для privatechannel с разрешениями на чтение, получение списка и выполнение.

Имя канала теперь будет подписанным URL-адресом (SAS) для большого двоичного объекта, созданным на основе этого процесса.

Создание образца файла конфигурации среды Conda

Наконец, проверьте процесс установки, создав образец файла environment.yml Conda. Если у вас есть рабочая область с поддержкой DEP (защита от кражи данных), необходимо указать канал nodefaults в файле среды.

Вот пример файла конфигурации Conda:

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

Создав образец файла Conda, можно приступать к созданию виртуальной среды Conda. Вы можете выполнить проверку локально, запустив следующие команды:

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

Теперь, проверив свой пользовательский канал, вы можете с помощью процесса управления пулом Python обновить библиотеки в своем пуле Apache Spark.

Дальнейшие действия