¿Cómo puedo solucionar problemas durante la instalación de bibliotecas de Python en mi clúster de EMR?
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:
- Instalación de paquetes en la guía del usuario de paquetes de Python
- Instalación y uso de kernels y bibliotecas
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.).
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 meses
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace un año