有没有一种方法可以在windows中设置awsglue模块来在本地测试python胶水作业

92vpleto  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(586)

找到https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-libraries.html#develop-本地python。glue-1.0只与linux操作系统兼容。

doinxwow

doinxwow1#

您可以尝试在windows中安装docker desktop,然后在windows中运行docker容器。
如果您需要有关如何在docker上设置胶水的帮助,请参阅本文:
https://towardsdatascience.com/develop-glue-jobs-locally-using-docker-containers-bffc9d95bd1

nwsw7zdq

nwsw7zdq2#

我的回答也涉及到docker的使用,但是使用openjdk:8 as 基本图像和另一个答案中的一个不同的方法。
注意:某些docker命令可能需要更改才能在windows上工作。我没有windows环境来测试它们。
dockerfile文件

  1. # Config for Glue-1.0
  2. ENV GLUE_REPO=https://github.com/awslabs/aws-glue-libs.git
  3. ENV SPARK_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-1.0/spark-2.4.3-bin-hadoop2.8.tgz
  4. ENV MAVEN_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-common/apache-maven-3.6.0-bin.tar.gz
  5. ENV PYTHON_BIN=python3
  6. RUN mkdir glue
  7. WORKDIR /glue
  8. RUN git clone -b glue-1.0 $GLUE_REPO
  9. RUN apt-get update && apt-get install awscli zip git tar ${PYTHON_BIN} ${PYTHON_BIN}-pip -y
  10. ADD ${MAVEN_URL} /tmp/maven.tar.gz
  11. ADD ${SPARK_URL} /tmp/spark.tar.gz
  12. RUN tar zxvf /tmp/maven.tar.gz -C ~/ && tar zxvf /tmp/spark.tar.gz -C ~/ && rm -rf /tmp/*
  13. RUN echo 'export SPARK_HOME="$(ls -d /root/*spark*)"; export MAVEN_HOME="$(ls -d /root/*maven*)"; export PATH="$PATH:$MAVEN_HOME/bin:$SPARK_HOME/bin:/glue/bin"' >> ~/.bashrc
  14. ENV PYSPARK_PYTHON "${PYTHON_BIN}"
  15. RUN pip3 install pytest boto3 moto
  16. RUN bash -l -c 'bash ~/.profile && bash /glue/aws-glue-libs/bin/glue-setup.sh'

建立形象

  1. docker build -t awsglue/dev-1.0 .

创建容器

  1. docker run -it --name glue-1.0 awsglue/dev-1.0

我更喜欢将源代码目录装载到容器中,并使容器在单独的终端中运行,以提交作业,或者只使用shell。你可以选择适合你的方法。或者,如果要在代码中使用awssdk,还可能需要挂载凭证位置。

  1. docker run -it --mount src=C:\Users\username\.aws,target=/root/.aws,type=bind --mount src=C:\path\to\src,target=/glue/src,type=bind --name glue-1.0 awsglue/dev-1.0

使用下面的命令启动、停止或执行到容器中

  1. docker start glue-1.0
  2. docker stop glue-1.0
  3. docker exec -it glue-1.0 /bin/bash

一旦进入,用下面的开始胶壳

  1. ./aws-glue-libs/bin/gluepyspark

或者提交一份工作

  1. ./aws-glue-libs/bin/gluesparksubmit src/job_name.py
展开查看全部

相关问题