首页 文章

如何从Glue Dev Endpoint运行glue脚本

提问于
浏览
2

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

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

2 回答

  • 0

    你不需要笔记本;你可以ssh到dev endpoints 并使用 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 类的脚本(如自动生成的Python脚本那样),则可能需要传递 --JOB_NAME--TempDir 参数 .

  • 2

    出于开发/测试的目的,您可以在本地设置zeppelin笔记本,使用AWS Glue endpoints URL Build 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 Glue推断,发展和监控您的ETL作业,从而大大简化创建和维护作业的过程 . Amazon EMR为您提供对Hadoop环境的直接访问,为您提供更低级别的访问权限,以及使用Spark之外的工具的更大灵活性 .

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

    问候

相关问题