Como posso solucionar problemas de instalação de bibliotecas Python no meu cluster do EMR?

4 minuto de leitura
0

Quero solucionar problemas de instalação de bibliotecas Python no meu cluster do Amazon EMR

Breve descrição

Estou tentando instalar bibliotecas Python no meu cluster do EMR, mas aparece um dos seguintes problemas:

  • Não consigo instalar bibliotecas Python no meu cluster do EMR.
  • O pacote Python não está disponível no Amazon EMR.
  • Os pacotes Python instalados não estão disponíveis em nós centrais ou de tarefas recém-provisionados.

Você pode instalar bibliotecas Python em clusters do EMR usando uma ação de inicialização ou fazendo o registro em log manualmente para cada nó. Instale bibliotecas Python usando ações de inicialização para garantir que as bibliotecas sejam instaladas automaticamente em todos os nós durante o provisionamento e o redimensionamento do cluster.

Resolução

Não consigo instalar bibliotecas Python no meu cluster do EMR ou o pacote Python não está disponível no Amazon EMR

Faça login no nó em que ocorreu o erro de falta do pacote. Em seguida, use o comando a seguir para verificar se as bibliotecas do Python estão instaladas:

$ sudo pip3 freeze | grep pandas
pandas==1.3.5
$ sudo pip3 freeze | grep numpy
numpy==1.21.6

Ou verifique se as bibliotecas do Python estão instaladas a partir do shell do Python:

$ python
Python 3.7.15 (default, Oct 31 2022, 22:44:31)
[GCC 7.3.1 20180712 (Red Hat 7.3.1-15)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> import numpy as np

Se os comandos anteriores retornarem um erro como ModuleNotFoundError: No module named 'python_library' (Nenhum módulo chamado 'python_library'), a biblioteca não está instalada.

Você pode instalar bibliotecas Python em clusters do EMR usando comandos pip, conforme mostrado nos exemplos a seguir:

sudo pip3 install pandas scipy sklearn
sudo pip3 install file://requirements.txt

No exemplo anterior, requirements.txt é uma lista de pacotes e bibliotecas do Python que você deseja instalar.

Para mais informações, consulte os links a seguir:

Para instalar bibliotecas personalizadas adicionais, use o comando pip install.

O Python é instalado no Amazon EMR por padrão. No entanto, nem todas as bibliotecas do Python estão instaladas. Para obter mais informações, consulte Instalar e usar kernels e bibliotecas.

Para ver uma lista das bibliotecas Python instaladas no cluster, use o comando sudo pip3 freeze. Veja a seguir um exemplo do comando sudo pip3 freeze e uma saída de exemplo:

$ sudo pip3 freeze
aws-cfn-bootstrap==2.0 
beautifulsoup4==4.9.3
boto==2.49.0 
click==8.1.3 
docutils==0.14 
jmespath==1.0.1 
joblib==1.2.0 l
ockfile==0.11.0 
lxml==4.9.1 
mysqlclient==1.4.2 
nltk==3.7 
nose==1.3.4 
numpy==1.20.0 
py-dateutil==2.2 
pystache==0.5.4 
python-daemon==2.2.3 
python37-sagemaker-pyspark==1.4.2 
pytz==2022.6
PyYAML==5.4.1 
regex==2021.11.10 
simplejson==3.2.0 
six==1.13.0 
tqdm==4.64.1 
windmill==1.6

Os pacotes Python não estão disponíveis no nó central ou de tarefas recém-provisionados durante a escalabilidade do cluster

Pacotes Python instalados manualmente em nós individuais podem não estar disponíveis em nós centrais ou de tarefas recém-provisionados durante a escalabilidade do cluster.

Para garantir que os pacotes existam em nós recém-provisionados, use uma ação de inicialização para instalar bibliotecas, em vez de instalá-las manualmente.

Em alguns casos, o pacote desejado pode não estar disponível, apesar de haver um script de inicialização para instalá-lo. Nesses casos, verifique os logs do script de inicialização para verificar o que deu errado. Para conferir os logs do script de inicialização, faça o seguinte:

Se a nova instância estiver em execução:

1.    Conecte-se ao nó primário usando SSH.

2.    Verifique se há erros nos logs de inicialização nos seguintes locais:

  • /var/log/bootstrap-actions/n/stderr
  • /var/log/bootstrap-actions/n/stdout

Nos caminhos anteriores, N representa o número do script de inicialização (por exemplo, 1,2,3 e assim por diante).

Se a nova instância tiver falha no provisionamento:

Os registros de inicialização são capturados no bucket do Amazon Simple Storage Service (Amazon S3) que você configurou para o registro em log do Amazon EMR. Os caminhos são:

  • s3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/N/stdout
  • s3://DOC-EXAMPLE-LOG-BUCKET/cluster-id/node/instance-id/bootstrap-actions/N/stderr

Nos caminhos anteriores, N representa o número do script de inicialização (por exemplo, 1,2,3 e assim por diante).


AWS OFICIAL
AWS OFICIALAtualizada há um ano