Como posso solucionar problemas de instalação de bibliotecas Python no meu cluster do EMR?
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).
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 meses
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 2 anos