本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配EMR無伺服器使用自訂映像
使用自訂的 Python 版本
您可以建立自訂映像檔以使用不同版本的 Python。例如,若要將 Python 版本 3.10 用於星火工作,請執行下列命令:
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
在您提交 Spark 工作之前,請將屬性設定為使用 Python 虛擬環境,如下所示。
--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
使用自訂的 Java 版本
下面的例子演示了如何構建一個自定義映像使用 Java 11 為您的 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
提交星火作業之前,設置星火屬性使用 Java 11,如下所示。
--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-
建立資料科學影像
下面的例子演示了如何包括常見的,數據科學 Python 包,如熊貓和 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
使用 Apache 塞多納處理地理空間資料
下面的示例演示了如何構建一個圖像,以包括 Apache Sedona 進行地理空間處理。
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