Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de imágenes personalizadas con EMR sin servidor
Temas
Use una versión personalizada de Python
Puede crear una imagen personalizada para usar una versión diferente de Python. Para usar la versión 3.10 de Python para los trabajos de Spark, por ejemplo, ejecuta el siguiente comando:
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest USER root # install python 3 RUN yum install -y gcc openssl-devel bzip2-devel libffi-devel tar gzip wget make RUN wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz && \ tar xzf Python-3.10.0.tgz && cd Python-3.10.0 && \ ./configure --enable-optimizations && \ make altinstall # EMRS will run the image as hadoop USER hadoop:hadoop
Antes de enviar el trabajo de Spark, configure sus propiedades para usar el entorno virtual de Python, de la siguiente manera.
--conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=/usr/local/bin/python3.10 --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=/usr/local/bin/python3.10 --conf spark.executorEnv.PYSPARK_PYTHON=/usr/local/bin/python3.10
Use una versión Java personalizada
En el siguiente ejemplo, se muestra cómo crear una imagen personalizada para usar Java 11 en los trabajos de Spark.
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest USER root # install JDK 11 RUN sudo amazon-linux-extras install java-openjdk11 # EMRS will run the image as hadoop USER hadoop:hadoop
Antes de enviar el trabajo de Spark, configure las propiedades de Spark para que usen Java 11, de la siguiente manera.
--conf spark.executorEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-1.amzn2.0.1.x86_64 --conf spark.emr-serverless.driverEnv.JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.0.8-
Cree una imagen de ciencia de datos
El siguiente ejemplo muestra cómo incluir paquetes Python comunes de ciencia de datos, como Pandas y NumPy.
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest USER root # python packages RUN pip3 install boto3 pandas numpy RUN pip3 install -U scikit-learn==0.23.2 scipy RUN pip3 install sk-dist RUN pip3 install xgboost # EMR Serverless will run the image as hadoop USER hadoop:hadoop
Procesamiento de datos geoespaciales con Apache Sedona
En el siguiente ejemplo se muestra cómo crear una imagen para incluir Apache Sedona para el procesamiento geoespacial.
FROM public.ecr.aws/emr-serverless/spark/emr-6.9.0:latest USER root RUN yum install -y wget RUN wget https://repo1.maven.org/maven2/org/apache/sedona/sedona-core-3.0_2.12/1.3.0-incubating/sedona-core-3.0_2.12-1.3.0-incubating.jar -P /usr/lib/spark/jars/ RUN pip3 install apache-sedona # EMRS will run the image as hadoop USER hadoop:hadoop