如何 运行 从 Glue Dev Endpoint 粘合脚本

How to run glue script from Glue Dev Endpoint

我有一个胶水脚本 (test.py) 写在编辑器中。我连接到 glue dev 端点并将脚本复制到端点,或者我可以存储在 S3 存储桶中。胶水端点基本上是一个 EMR 集群,现在我如何 运行 来自开发端点终端的脚本?我可以使用 spark-submit 和 运行 它吗?

我知道我们可以从 glue 控制台 运行,但更想知道我是否可以 运行 从 glue 端点终端。

出于开发/测试目的,您可以在本地设置飞艇笔记本,使用 AWS Glue 端点建立 SSH 连接 URL,这样您就可以访问数据 catalog/crawlers,等等.以及您的数据所在的 s3 存储桶。

所有测试完成后,您可以打包您的代码,上传到S3 存储桶。然后在S3 bucket中创建一个指向ETL脚本的Job,这样job就可以运行,也可以调度了。

有关设置本地环境的任何帮助,请参阅 here and setting up zeppelin on windows。您可以使用 Glue 提供的开发实例,但您可能会因此产生额外费用(EC2 实例费用)。

设置 zeppelin notebook 后,您可以将脚本 (test.py) 复制到 zeppelin notebook,并从 zeppelin 复制 运行。

根据 AWS Glue 常见问题:

Q: When should I use AWS Glue vs. Amazon EMR?

AWS Glue works on top of the Apache Spark environment to provide a scale-out execution environment for your data transformation jobs. AWS Glue infers, evolves, and monitors your ETL jobs to greatly simplify the process of creating and maintaining jobs. Amazon EMR provides you with direct access to your Hadoop environment, affording you lower-level access and greater flexibility in using tools beyond Spark.

您对 运行 EMR 实例中的 Glue 脚本有什么具体要求吗?因为在我看来,EMR 提供了更大的灵活性,您可以直接在 EMR Spark 集群中使用任何第 3 方 python 库和 运行。

此致

你不需要笔记本;您可以通过 gluepython 解释器(不是普通的 python)连接到开发端点并 运行 它。

例如

radix@localhost:~$ DEV_ENDPOINT=glue@ec2-w-x-y-z.compute-1.amazonaws.com
radix@localhost:~$ scp myscript.py $DEV_ENDPOINT:/home/glue/myscript.py
radix@localhost:~$ ssh -i {private-key} $DEV_ENDPOINT
...
[glue@ip-w-x-y-z ~]$ gluepython myscript.py

您也可以直接 运行 脚本而无需使用 ssh 进行交互 shell(当然,在使用 scp 或其他方式上传脚本后):

radix@localhost:~$ ssh -i {private-key} $DEV_ENDPOINT gluepython myscript.py

如果这是一个使用 Job class 的脚本(就像自动生成的 Python 脚本一样),您可能需要传递 --JOB_NAME--TempDir参数。