Criar um canal do Conda personalizado para gerenciamento de pacotes
Ao instalar pacotes do Python, o gerenciador de pacotes do Conda usa canais para procurar pacotes. Talvez seja necessário criar um canal do Conda personalizado por vários motivos. Por exemplo, você pode constatar que:
- o workspace está protegido contra exfiltração dos dados e as conexões de saída estão bloqueadas.
- você tem pacotes que não deseja carregar em repositórios públicos.
- você deseja configurar um repositório alternativo para os usuários no workspace.
Neste artigo, forneceremos um guia passo a passo para criar o canal do Conda personalizado na conta do Azure Data Lake Storage.
Configurar o computador local
Instale o Conda no computador local. Você pode ver o runtime do Azure Synapse Spark para identificar a versão do Conda usada no mesmo runtime.
Para criar um canal personalizado, instale o conda-build.
conda install conda-build
- Organize todos os pacotes para a plataforma que você deseja atender. Neste exemplo, instalaremos o arquivo Anaconda no 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 àquele que é criado e disponibilizado no tempo de execução do Azure Synapse, você pode baixar este modelo. Pode haver pequenas diferenças entre o modelo e o ambiente real do Azure Synapse. Depois de baixar, você pode executar o comando a seguir:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml
Montar a conta de armazenamento no computador
Em seguida, montaremos a conta do Azure Data Lake Storage Gen2 no computador local. Esse processo também pode ser feito com uma conta do WASB. No entanto, veremos um exemplo para a conta do ADLSg2
Para obter mais informações sobre como montar a conta de armazenamento no computador local, acesse esta página.
- Você pode instalar o blobfuse do repositório de software do Linux para produtos da 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 mountpoint (
mkdir /path/to/mount
) e monte um contêiner de blobs com o blobfuse. Neste exemplo, vamos usar 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
Crie o canal
No próximo conjunto de etapas, criaremos um canal do Conda personalizado.
- No computador local, crie um diretório para organizar todos os pacotes do canal personalizado. Organize todos os pacotes
tar.bz2
do https://repo.anaconda.com/pkgs/main/linux-64/ no subdiretório. Inclua também 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
- Você pode agora verificar a conta de armazenamento onde o seu diretório
privatechannel/channel
foi criado.
Observação
O Conda desconsidera o token SAS associado a um contêiner. Portanto, você precisa marcar o contêiner "privatechannel" como de acesso público.
Para obter mais informações, você também pode acessar o guia do usuário do Conda para criar canais personalizados.
Permissões da conta de armazenamento
Agora, será necessário validar as permissões na conta de armazenamento. Para definir essas permissões, navegue até o caminho em que o canal personalizado será criado. Em seguida, crie um token SAS para privatechannel
que tenha permissões de leitura, lista e execução.
Agora o nome do canal será a URL SAS do blob gerada nesse processo.
Crie um arquivo de configuração de exemplo para o ambiente do Conda
Por fim, verifique o processo de instalação criando um arquivo environment.yml
do Conda de exemplo. Se você estiver em um workspace habilitado para proteção de exfiltração dos dados, você deve especificar o canal nodefaults
no arquivo de ambiente.
Este é um arquivo de configuração de exemplo do Conda:
name: sample
channels:
- https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
- nodefaults
dependencies:
- openssl
- ncurses
Depois de criar o arquivo de exemplo do Conda, você pode criar um ambiente virtual do Conda. É possível conferir isso localmente executando o seguinte comando:
conda env create --file sample.yml
source activate env
conda list
Agora que você verificou o canal personalizado, pode usar o processo de Gerenciamento de pool do Python para atualizar as bibliotecas no pool do Apache Spark.
Próximas etapas
- Exibir as bibliotecas padrão: suporte à versão do Apache Spark
- Gerenciar pacotes Python no nível da sessão: gerenciamento de pacotes do Python na Sessão do Notebook