我使用 AWS Data Pipelines 运行夜间 SQL 查询,以填充表以获取摘要统计信息。用户界面有点时髦,但最终我安装并运行了。
现在我想用 python 脚本做类似的事情。我有一个每天早上在笔记本电脑上运行的文件(forecast_rev.py
)但这当然意味着I每天都必须打开我的笔记本电脑并开始它。当然,我可以安排一个管道来做同样的事情,这样就可以去度假而不关心了。
我一生都找不到关于此的教程、AWS 文档或 StackOverflow!我什至不知道如何开始。有人愿意分享一个简单的管道吗?
我遇到了类似的情况,这是我如何克服的。
我将描述我如何使用 Ec2Resource 做到这一点。如果您正在 EMRCluster 中寻找解决方案,请参阅@franklinsijoanswer.
Steps
1。将您的 python 脚本存储在 s3 中。
2。创建一个 shell 脚本(hello.sh)(如下所示)并将其存储到 s3
3。创建 Ec2Resource 节点和 ShellCommandActivity 节点并提供这些信息。
- 在“Script Uri”中提供 shell 脚本 S3 url,并将“stage”设置为 true
ShellCommandActivity
。它应该运行在你的DefaultResource
这是 shell 脚本(hello.sh),它从 s3 下载你的 python 程序并存储在本地,安装 python 和所需的第 3 方库,最后执行你的 python 文件。
hello.sh
echo 'Download python file to local temp'
aws s3 cp s3://path/to/python_file/hello_world.py /tmp/hello.py
# Install python(on CentOs )
sudo yum -y install python-pip
pip install <dependencies>
python /tmp/hello.py
我在尝试时遇到了困难爆炸线所以不要将它们包含在这里。
if aws cp
命令不起作用(awscli 较旧),这是针对这种情况的快速解决方案。
- 按照上面的步骤 1-3 进行操作,同时创建一个
s3DataNode
.
I. 在 S3DataNode 的“文件路径”中提供您的 python s3 url。
二.提供 DataNode 作为“输入”ShellCommandActivity
三.在“命令”字段中写入以下命令ShellCommandActivity
Command
echo 'Install Python2'
sudo yum -y install python-pip
pip install <dependencies>
python ${INPUT1_STAGING_DIR}/hello_world.py
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)