【问题标题】:AWS ETL with python scripts带有 python 脚本的 AWS ETL
【发布时间】:2015-07-12 10:28:09
【问题描述】:

我正在尝试在使用 python 的 AWS 平台上创建一个基本的 ETL。 在 S3 存储桶(我们称之为“A”)中,我有很多原始日志文件,经过 gzip 压缩。 我想做的是定期(=数据管道)解压缩,由python脚本处理,该脚本将重新格式化每一行的结构,并将其输出到另一个S3存储桶(“B”),最好作为gzips源自 A 中相同 gzip 的相同日志文件,但这不是强制性的。

我编写了 python 脚本来处理它需要做的事情(从标准输入接收每一行)并输出到标准输出(或标准错误,如果一行无效。在这种情况下,我希望它被编写到另一个桶,“C”)。

我正在摆弄数据管道,尝试运行一个 shell 命令作业和一个用于使用 python 脚本排序的 hive 作业。 EMR 集群已创建、运行、完成,没有失败或错误,也没有创建日志,我不明白出了什么问题。 另外,我希望在处理并写入目标或错误的日志存储桶后删除原始日志。

有人对这种配置有任何经验吗?和建议?

【问题讨论】:

    标签: python amazon-web-services amazon-s3 amazon-emr amazon-data-pipeline


    【解决方案1】:

    您要做的第一件事是在 EMR 集群上设置“终止保护”,只要它由 Data Pipeline 启动。 (这也可以编写脚本)。

    然后您可以登录到“主实例”。这是在 EMR 集群详细信息下的“硬件”窗格下。 (您也可以通过集群 ID 在 EC2 控制台中搜索)。

    您还必须定义一个“密钥”,以便您可以通过 SSH 连接到主服务器。

    登录到主服务器后,您可以在 /mnt/var/log/hadoop/steps/ 下查看日志 - 或 /mnt/var/lib/hadoop/.. 查看实际工件。您可以使用 HDFS utils 浏览 hdfs。

    日志(如果它们被写入 stdout 或 stderr),已经移动到 S3。如果你想移动额外的文件,你必须编写一个脚本并使用'script-runner'运行它。您可以使用“s3distcp”复制大量文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 2015-11-19
      • 2021-12-22
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多