Criar um canal Conda personalizado para a gestão de pacotes
Ao instalar pacotes Python, o gestor de pacotes da Conda utiliza canais para procurar pacotes. Poderá ter de criar um canal Conda personalizado por vários motivos. Por exemplo, pode descobrir que:
- A área de trabalho está protegida por exfiltração de dados e as ligações de saída estão bloqueadas.
- tem pacotes que não quer carregar para repositórios públicos.
- quer configurar um repositório alternativo para os utilizadores na área de trabalho.
Neste artigo, iremos fornecer um guia passo a passo para ajudá-lo a criar o seu canal Conda personalizado na sua conta Azure Data Lake Storage.
Configurar o computador local
Instale o Conda no seu computador local. Pode consultar o Azure Synapse runtime do Spark para identificar a versão conda utilizada no mesmo runtime.
Para criar um canal personalizado, instale conda-build.
conda install conda-build
- Organize todos os pacotes na plataforma que pretende servir. Neste exemplo, vamos instalar o arquivo Anaconda no seu computador local.
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
- Para criar um ambiente semelhante ao que é criado disponível no Azure Synapse runtime, pode transferir este modelo. Pode haver ligeiras diferenças entre o modelo e o Ambiente de Azure Synapse real. Depois de transferido, pode executar o seguinte comando:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml
Montar a conta de armazenamento no computador
Em seguida, vamos montar a conta Azure Data Lake Storage Gen2 no seu computador local. Este processo também pode ser feito com uma conta WASB; no entanto, vamos ver um exemplo para a conta do ADLSg2
Para obter mais informações sobre como montar a conta de armazenamento no seu computador local, pode visitar esta página.
- Pode instalar blobfuse a partir do Repositório de Software linux para produtos 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
- Crie o ponto de montagem (
mkdir /path/to/mount
) e monte um contentor de Blobs com blobfuse. Neste exemplo, vamos utilizar o valor privatechannel para a variável 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
Criar o canal
No próximo conjunto de passos, vamos criar um canal Conda personalizado.
- No seu computador local, crie um diretório para organizar todos os pacotes do seu canal personalizado. Organize todos os
tar.bz2
pacotes de https://repo.anaconda.com/pkgs/main/linux-64/ para o subdiretório. Certifique-se de que também inclui todos os pacotes tar.bz2 dependentes.
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
- Agora, pode verificar a conta de armazenamento onde o diretório
privatechannel/channel
teria sido criado.
Nota
A Conda não honra o token de SAS associado a um contentor. Por conseguinte, tem de marcar o contentor "privatechannel" como acesso público.
Para obter mais informações, também pode visitar o guia de utilizador da Conda para criar canais personalizados.
Permissões da conta de armazenamento
Agora, teremos de validar as permissões na conta de armazenamento. Para definir estas permissões, navegue para o caminho onde será criado o canal personalizado. Em seguida, crie um token SAS para privatechannel
o qual tenha permissões de leitura, lista e execução.
O nome do canal será agora o URL de SAS de blobs gerado a partir deste processo.
Criar um ficheiro de configuração de ambiente conda de exemplo
Por último, verifique o processo de instalação ao criar um ficheiro Conda environment.yml
de exemplo. Se tiver uma área de trabalho com a proteção de exfiltração de dados ativada, tem de especificar o nodefaults
canal no ficheiro de ambiente.
Eis um ficheiro de configuração conda de exemplo:
name: sample
channels:
- https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
- nodefaults
dependencies:
- openssl
- ncurses
Depois de criar o ficheiro Conda de exemplo, pode criar um ambiente conda virtual. Pode verificar isto localmente ao executar os seguintes comandos:
conda env create --file sample.yml
source activate env
conda list
Agora que verificou o seu canal personalizado, pode utilizar o processo de gestão do conjunto de Python para atualizar as bibliotecas no seu conjunto do Apache Spark.
Passos seguintes
- Ver as bibliotecas predefinidas: suporte da versão do Apache Spark
- Gerir pacotes Python ao nível da sessão: gestão de pacotes Python na Sessão do Bloco de Notas