我在编辑器中写了一个胶水脚本(test.py)。我连接到胶水dev端点并将脚本复制到端点或我可以存储在S3存储桶中。基本上胶水端点是一个EMR集群,现在如何从开发端点终端运行脚本?我可以使用spark-submit运行吗?
我知道我们可以从胶水控制台运行它,但更有兴趣知道我是否可以从胶水端点终端运行它。
答案 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脚本的作业,以便可以运行和调度作业。
有关设置本地环境的任何帮助,请参阅here和setting 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集群中运行。
此致