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

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

找到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文件


# Config for Glue-1.0

ENV GLUE_REPO=https://github.com/awslabs/aws-glue-libs.git
ENV SPARK_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-1.0/spark-2.4.3-bin-hadoop2.8.tgz
ENV MAVEN_URL=https://aws-glue-etl-artifacts.s3.amazonaws.com/glue-common/apache-maven-3.6.0-bin.tar.gz
ENV PYTHON_BIN=python3

RUN mkdir glue
WORKDIR /glue
RUN git clone -b glue-1.0 $GLUE_REPO
RUN apt-get update && apt-get install awscli zip git tar ${PYTHON_BIN} ${PYTHON_BIN}-pip -y

ADD ${MAVEN_URL} /tmp/maven.tar.gz
ADD ${SPARK_URL} /tmp/spark.tar.gz

RUN tar zxvf /tmp/maven.tar.gz -C ~/ && tar zxvf /tmp/spark.tar.gz -C ~/ && rm -rf /tmp/*
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
ENV PYSPARK_PYTHON "${PYTHON_BIN}"

RUN pip3 install pytest boto3 moto
RUN bash -l -c 'bash ~/.profile && bash /glue/aws-glue-libs/bin/glue-setup.sh'

建立形象

docker build -t awsglue/dev-1.0 .

创建容器

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

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

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

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

docker start glue-1.0
docker stop glue-1.0
docker exec -it  glue-1.0 /bin/bash

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

./aws-glue-libs/bin/gluepyspark

或者提交一份工作

./aws-glue-libs/bin/gluesparksubmit src/job_name.py

相关问题