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
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.
Özel kanal oluşturmak için conda-build'ı yükleyin.
conda install conda-build
- 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
- 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.
- 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
- 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.
- 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
- Ş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
- Varsayılan kitaplıkları görüntüleme: Apache Spark sürüm desteği
- Oturum düzeyinde Python paketlerini yönetme: Not Defteri Oturumunda Python paket yönetimi