As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Instalando e usando kernels e bibliotecas no Studio EMR
Cada EMR notebook vem com um conjunto de bibliotecas e kernels pré-instalados. Você pode instalar bibliotecas e kernels adicionais em um EMR cluster se o cluster tiver acesso ao repositório em que os kernels e as bibliotecas estão localizados. Por exemplo, para clusters em sub-redes privadas, talvez seja necessário configurar a tradução de endereços de rede (NAT) e fornecer um caminho para que o cluster acesse o repositório público do PyPI para instalar uma biblioteca. Para obter mais informações sobre como configurar o acesso externo para diferentes configurações de rede, consulte Cenários e exemplos no Guia VPC do usuário da Amazon.
nota
EMROs notebooks estão disponíveis como espaços de trabalho do EMR Studio no console. O botão Criar espaço de trabalho no console permite criar novos cadernos. Para acessar ou criar espaços de trabalho, os usuários do EMR Notebooks precisam de permissões adicionais de IAM função. Para obter mais informações, consulte Amazon EMR Notebooks são espaços de trabalho do Amazon EMR Studio no console e no console da Amazon EMR.
EMROs aplicativos sem servidor vêm com as seguintes bibliotecas pré-instaladas para Python e: PySpark
-
Bibliotecas Python — ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy
-
PySpark bibliotecas — ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy
Instalação de kernels e de bibliotecas Python em um nó primário do cluster
Com a EMR versão 5.30.0 e posterior da Amazon, excluindo a 6.0.0, você pode instalar bibliotecas e kernels adicionais do Python no nó primário do cluster. Após a instalação, esses kernels e bibliotecas ficam disponíveis para qualquer usuário executando um EMR notebook conectado ao cluster. As bibliotecas Python instaladas dessa forma estão disponíveis somente para processos em execução no nó primário. As bibliotecas não são instaladas nos nós principais ou de tarefas e não estão disponíveis para executores em execução nesses nós.
nota
Para EMR as versões 5.30.1, 5.31.0 e 6.1.0 da Amazon, você deve realizar etapas adicionais para instalar kernels e bibliotecas no nó primário de um cluster.
Para habilitar o recurso, faça o seguinte:
-
Certifique-se de que a política de permissões anexada à função de serviço para EMR Notebooks permita a seguinte ação:
elasticmapreduce:ListSteps
Para obter mais informações, consulte Função de serviço para EMR notebooks.
-
Use o AWS CLI para executar uma etapa no cluster que configura os EMR Notebooks, conforme mostrado no exemplo a seguir. Você deve usar o nome da etapa
EMRNotebooksSetup
. Substituirus-east-1
com a região em que seu cluster reside. Para obter mais informações, consulte Adding steps to a cluster using the AWS CLI.aws emr add-steps --cluster-id
MyClusterID
--steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]
Você pode instalar kernels e bibliotecas usando pip
ou conda
no diretório /emr/notebook-env/bin
no nó primário.
exemplo : instalação de bibliotecas Python
No kernel do Python3, execute a mágica %pip
como um comando de dentro de uma célula de caderno para instalar bibliotecas Python.
%pip install pmdarima
Pode ser necessário reiniciar o kernel para usar os pacotes atualizados. Você também pode usar a mágica %%sh
pip
.
%%sh /emr/notebook-env/bin/pip install -U matplotlib /emr/notebook-env/bin/pip install -U pmdarima
Ao usar um PySpark kernel, você pode instalar bibliotecas no cluster usando pip
comandos ou usar bibliotecas com escopo de notebook de dentro de um notebook. PySpark
Para executar pip
comandos no cluster a partir do terminal, primeiro conecte-se ao nó primário usandoSSH, conforme demonstrado nos comandos a seguir.
sudo pip3 install -U matplotlib sudo pip3 install -U pmdarima
Como alternativa, você pode usar bibliotecas com escopo de cadernos. Com bibliotecas com escopo de cadernos, a instalação da sua biblioteca é limitada ao escopo da sua sessão e ocorre em todos os executores do Spark. Para obter mais informações, consulte Uso de bibliotecas com escopo de cadernos.
Se você quiser empacotar várias bibliotecas Python em um PySpark kernel, você também pode criar um ambiente virtual Python isolado. Para exemplos, consulte Usando Virtualenv
Para criar um ambiente virtual Python em uma sessão, use a propriedade spark.yarn.dist.archives
do Spark do comando mágico %%configure
na primeira célula de um caderno, como demonstra o exemplo a seguir.
%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://
amzn-s3-demo-bucket
/prefix
/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }
De forma semelhante, você pode criar um ambiente de executor do Spark.
%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://
amzn-s3-demo-bucket
/prefix
/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }
Você também pode usar conda
para instalar bibliotecas Python. Você não precisa de acesso ao sudo para usar conda
. Você deve se conectar ao nó primário com SSH e depois executar a conda
partir do terminal. Para obter mais informações, consulte Conecte-se ao nó primário EMR do cluster Amazon usando SSH.
exemplo : instalação de kernels
O seguinte exemplo demonstra a instalação do kernel do Kotlin usando um comando de terminal enquanto estiver conectado ao nó primário de um cluster:
sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
nota
Estas instruções não instalam as dependências do kernel. Se o seu kernel tiver dependências de terceiros, talvez seja necessário realizar etapas adicionais de configuração antes de poder usar o kernel com o seu caderno.
Considerações e limitações com bibliotecas com escopo de cadernos
Considere o seguinte ao usar bibliotecas com escopo de cadernos:
-
Bibliotecas com escopo de notebook estão disponíveis para clusters que você cria com as EMR versões 5.26.0 e superiores da Amazon.
-
As bibliotecas com escopo de notebook devem ser usadas somente com o kernel. PySpark
-
Qualquer usuário pode instalar bibliotecas adicionais com escopo de bloco de anotações de dentro de uma célula de bloco de anotações. Essas bibliotecas só estão disponíveis para esse usuário do bloco de anotações durante uma única sessão do bloco de anotações. Se outros usuários precisarem das mesmas bibliotecas ou o mesmo usuário precisar das mesmas bibliotecas em uma sessão diferente, a biblioteca deverá ser reinstalada.
-
Você pode desinstalar somente as bibliotecas que foram instaladas com
install_pypi_package
API o. Não é possível desinstalar nenhuma biblioteca pré-instalada no cluster. -
Se as mesmas bibliotecas com versões diferentes estiverem instaladas no cluster e como bibliotecas com escopo de bloco de anotações, a versão da biblioteca com escopo de bloco de anotações substituirá a versão da biblioteca do cluster.
Como trabalhar com bibliotecas com escopo de cadernos
Para instalar bibliotecas, seu EMR cluster da Amazon deve ter acesso ao repositório PyPI onde as bibliotecas estão localizadas.
Os exemplos a seguir demonstram comandos simples para listar, instalar e desinstalar bibliotecas de dentro de uma célula do notebook usando o PySpark kernel e. APIs Para ver exemplos adicionais, consulte a postagem Instalar bibliotecas Python em um cluster em execução com EMR Notebooks
exemplo : listagem de bibliotecas atuais
O comando a seguir lista os pacotes Python disponíveis para a sessão de bloco de anotações Spark atual. Isso lista as bibliotecas instaladas no cluster e as bibliotecas com escopo de bloco de anotações.
sc.list_packages()
exemplo : instalação da biblioteca Celery
O comando a seguir instala a biblioteca Celery
sc.install_pypi_package("celery")
Depois de instalar a biblioteca, o comando a seguir confirma que a biblioteca está disponível no driver e nos executores Spark.
import celery sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
exemplo : instalação da biblioteca Arrow com especificação de versão e de repositório
O comando a seguir instala a biblioteca Arrow
sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
exemplo : desinstalação de uma biblioteca
O comando a seguir desinstala a biblioteca Arrow, removendo-a como uma biblioteca com escopo de bloco de anotações da sessão atual.
sc.uninstall_package("arrow")