如何从Glue Dev Endpoint运行glue脚本

时间:2018-05-20 03:51:55

标签: amazon-web-services aws-glue

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

我知道我们可以从胶水控制台运行它,但更有兴趣知道我是否可以从胶水端点终端运行它。

2 个答案:

答案 0 :(得分:2)

你不需要笔记本;你可以ssh到dev端点并使用gluepython解释器(不是普通python)运行它。

e.g。

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类的脚本(如自动生成的Python脚本那样),则可能需要传递--JOB_NAME--TempDir个参数。

答案 1 :(得分:0)

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

完成所有测试后,您可以捆绑代码,上传到S3存储桶。然后创建一个指向S3存储桶中的ETL脚本的作业,以便可以运行和调度作业。

有关设置本地环境的任何帮助,请参阅heresetting up zeppelin on windows。您可以使用Glue提供的开发实例,但您可能需要支付相同的额外费用(EC2实例费用)。

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

根据AWS Glue FAQ:

  

问:我应该何时使用AWS Glue与Amazon EMR?

     

AWS Glue在Apache Spark环境之上工作以提供   用于数据转换作业的横向扩展执行环境。 AWS   胶水可以推断,发展和监控您的ETL作业,从而大大简化   创造和维持工作的过程。 Amazon EMR为您提供   直接访问您的Hadoop环境,为您提供服务   更低级别的访问权限以及使用其他工具的更大灵活性   火花。

您是否有任何特定要求在EMR实例中运行Glue脚本?因为在我看来,EMR提供了更大的灵活性,您可以使用任何第三方python库并直接在EMR Spark集群中运行。

此致