Paket yönetimi için özel conda kanalı oluşturma

Conda paket yöneticisi, Python paketlerini yüklerken paketleri aramak için kanalları kullanır. Çeşitli nedenlerle özel bir Conda kanalı oluşturmanız gerekebilir. Örneğin, şunları bulabilirsiniz:

  • çalışma alanınız veri sızdırma korumalıdır ve giden bağlantılar engellenir.
  • ortak depolara yüklemek istemediğiniz paketlere sahipsiniz.
  • çalışma alanınızdaki kullanıcılar için alternatif bir depo ayarlamak istiyorsunuz.

Bu makalede, Azure Data Lake Storage hesabınızda özel Conda kanalınızı oluşturmanıza yardımcı olacak adım adım bir kılavuz sağlayacağız.

Yerel makinenizi ayarlama

  1. Conda'yi yerel makinenize yükleyin. Aynı çalışma zamanında kullanılan Conda sürümünü tanımlamak için Azure Synapse Spark çalışma zamanına başvurabilirsiniz.

  2. Özel kanal oluşturmak için conda-build'ı yükleyin.

conda install conda-build
  1. Hizmet vermek istediğiniz platform için içindeki tüm paketleri düzenleyin. Bu örnekte anaconda arşivini yerel makinenize yükleyeceğiz.
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 çalışma zamanında oluşturulana benzer bir ortam oluşturmak için bu şablonu indirebilirsiniz. Şablon ile gerçek Azure Synapse Ortamı arasında küçük farklılıklar olabilir. İndirildikten sonra aşağıdaki komutu çalıştırabilirsiniz:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml

Depolama hesabını makinenize bağlama

Ardından, Azure Data Lake Storage 2. Nesil hesabını yerel makinenize bağlayacağız. Bu işlem bir WASB hesabıyla da yapılabilir; ancak, ADLSg2 hesabı için bir örnek üzerinden geçeceğiz

Depolama hesabını yerel makinenize bağlama hakkında daha fazla bilgi için bu sayfayı ziyaret edebilirsiniz.

  1. Blobfuse'u Microsoft ürünleri için Linux Yazılım Deposu'ndan yükleyebilirsiniz.
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. Bağlama noktanızı (mkdir /path/to/mount) oluşturun ve blobfuse ile bir Blob kapsayıcısı bağlayın. Bu örnekte mycontainer değişkeni için privatechannel değerini kullanalım.
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 

Kanalı oluşturma

Sonraki adım kümesinde özel bir Conda kanalı oluşturacağız.

  1. Yerel makinenizde, özel kanalınızın tüm paketlerini düzenlemek için bir dizin oluşturun. Tüm tar.bz2 paketleri https://repo.anaconda.com/pkgs/main/linux-64/ alt dizinde düzenleyin. Ayrıca tüm bağımlı tar.bz2 paketlerini de eklediğinizden emin olun.

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. Şimdi dizininizin privatechannel/channel oluşturulacağı depolama hesabını kontrol edebilirsiniz.

Not

Conda, bir kapsayıcıyla ilişkili SAS belirtecini dikkate almaz. Bu nedenle, "privatechannel" kapsayıcısını genel erişim olarak işaretlemeniz gerekir.

Daha fazla bilgi için Conda kullanıcı kılavuzunu ziyaret edip özel kanallar oluşturabilirsiniz.

Depolama hesabı izinleri

Şimdi depolama hesabındaki izinleri doğrulamamız gerekecek. Bu izinleri ayarlamak için özel kanalın oluşturulacağı yola gidin. Ardından okuma, listeleme ve yürütme izinlerine sahip olan bir privatechannel SAS belirteci oluşturun.

Kanal adı artık bu işlemden oluşturulan blob SAS URL'si olacaktır.

Örnek conda ortamı yapılandırma dosyası oluşturma

Son olarak, örnek bir Conda environment.yml dosyası oluşturarak yükleme işlemini doğrulayın. Veri sızdırma koruması etkinleştirilmiş bir çalışma alanınız varsa, kanalı ortam dosyanızda belirtmeniz nodefaults gerekir.

Aşağıda örnek bir Conda yapılandırma dosyası verilmiştir:

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

Örnek Conda dosyasını oluşturduktan sonra sanal bir Conda ortamı oluşturabilirsiniz. Aşağıdaki komutları çalıştırarak bunu yerel olarak doğrulayabilirsiniz:

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

Artık özel kanalınızı doğruladığınıza göre, Apache Spark havuzunuzdaki kitaplıkları güncelleştirmek için Python havuzu yönetim işlemini kullanabilirsiniz.

Sonraki adımlar