¿Cómo puedo solucionar problemas durante la instalación de bibliotecas de Python en mi clúster de EMR?

4 minutos de lectura
0

Quiero solucionar problemas durante la instalación de bibliotecas de Python en mi clúster de Amazon EMR

Descripción breve

Estoy intentando instalar bibliotecas de Python en mi clúster de EMR, pero aparece uno de los siguientes problemas:

  • No puedo instalar bibliotecas de Python en mi clúster de EMR.
  • El paquete de Python no está disponible en Amazon EMR.
  • Los paquetes de Python instalados no están disponibles en los nodos principales o nodos de tareas recién aprovisionados.

Puede instalar bibliotecas de Python en clústeres de EMR mediante una acción de arranque o al iniciar sesión manualmente en cada nodo. Instale las bibliotecas de Python mediante acciones de arranque para asegurarse de que las bibliotecas se instalen automáticamente en todos los nodos durante el aprovisionamiento y el cambio de tamaño del clúster.

Resolución

No puedo instalar las bibliotecas de Python en mi clúster de EMR o el paquete de Python no está disponible en Amazon EMR

Inicie sesión en el nodo donde se produjo el error de paquete faltante. A continuación, utilice el siguiente comando para comprobar que las bibliotecas de Python estén instaladas:

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

O bien, compruebe que las bibliotecas de Python estén instaladas desde el shell de 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

Si los comandos anteriores devuelven un error como ModuleNotFoundError: No module named 'python_library' (ModuleNotFoundError: No hay ningún módulo llamado 'python_library'), significa que la biblioteca no está instalada.

Puede instalar bibliotecas de Python en clústeres de EMR mediante los comandos pip, como se muestra en los siguientes ejemplos:

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

En el ejemplo anterior, requirements.txt es una lista de paquetes y bibliotecas de Python que desea instalar.

Para obtener más información, consulte estos recursos:

Para instalar bibliotecas personalizadas adicionales, utilice el comando pip install.

Python se instala en Amazon EMR de forma predeterminada. Sin embargo, no todas las bibliotecas de Python están instaladas. Para obtener más información, consulte Instalación y uso de kernels y bibliotecas.

Para ver una lista de las bibliotecas de Python instaladas en el clúster, utilice el comando sudo pip3 freeze. A continuación, se muestra un ejemplo del comando sudo pip3 freeze y un ejemplo de resultado:

$ 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

Los paquetes de Python no están disponibles en el núcleo o el nodo de tareas recién aprovisionados durante el escalado del clúster

Es posible que los paquetes de Python instalados manualmente en nodos individuales no estén disponibles en los nodos principales o nodos de tareas recién aprovisionados durante el escalado del clúster.

Para asegurarse de que los paquetes existan en los nodos recién aprovisionados, utilice una acción de arranque para instalar las bibliotecas en lugar de instalarlas manualmente.

Puede haber casos en los que el paquete deseado no esté disponible a pesar de tener un script de arranque para instalarlo. En estos casos, compruebe los registros del script de arranque para determinar qué ha fallado. Para comprobar los registros del script de arranque, haga lo siguiente:

Si la nueva instancia se está ejecutando:

1.    Conéctese al nodo principal mediante SSH.

2.    Compruebe si hay errores en los registros de arranque en las siguientes ubicaciones:

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

En las rutas anteriores, N representa el número del script de arranque (por ejemplo: 1,2,3, etc.).

Si la nueva instancia no se pudo aprovisionar:

Los registros de arranque se capturan en el bucket de Amazon Simple Storage Service (Amazon S3) que configuró para el registro de Amazon EMR. Las rutas son:

  • 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

En las rutas anteriores, N representa el número del script de arranque (por ejemplo: 1,2,3, etc.).


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año