【问题标题】:Run java -jar inside AWS Glue job在 AWS Glue 作业中运行 java -jar
【发布时间】:2026-02-08 05:00:01
【问题描述】:

我有相对简单的任务要做,但要努力使用最佳的 AWS 服务组合来完成它:

  1. 我有一个简单的 java 程序(由第 3 方提供 - 我无法修改它,只需要使用),我可以使用 java -jar --target-location "path on local disc" 在任何地方运行。该程序一旦执行,就会在--target-location 中定义的路径中的本地磁盘上创建 csv 文件
  2. 创建文件后,我需要将其上传到 S3

我目前的做法是使用安装了 java 的专用 EC2 实例,第一点由 java -jar ... 覆盖,第二点由 aws s3 cp ... 命令覆盖

我正在寻找更好的方法(最好是无服务器)。如果可以使用 AWS Glue 作业类型 Python Shell 来完成以上几点,我正在徘徊?第二点(将本地文件复制到 S3),很可能我可以用 boto3 覆盖,但首先(java -jar 执行)- 我不确定。


我是强制使用 EC2 实例还是您认为 AWS Glue 更智能?
或者最有效的方法是构建 docker 镜像(包含这两条指令),在 ECR 中注册并使用 AWS Batch 运行?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-glue aws-batch


    【解决方案1】:

    我正在寻找更好的方法(最好是无服务器)。

    我不知道无服务器选项是否更好,但是,EC2 实例可以很好地完成这项工作。假设您的实例上有 CentOS,您可以通过

    aaPanel 图形用户界面

    一些有用的 Web 面板提供 cron 计划任务,例如将一些文件从一个目录备份到另一个 S3 目录。我将以aaPanel为例。

    安装aaPanel

    安装AWS S3 plugin

    在插件中配置凭据。

    Cron

    添加计划任务以将文件从“本地磁盘路径”备份到 AWS S3。

    Rclone

    网络面板超出了此问题的范围。 Rclone 是我用来将文件从本地磁盘备份到 OneDrive、S3 等的另一个有用工具。

    安装

    curl https://rclone.org/install.sh | sudo bash

    Sync

    将目录同步到远程存储桶,删除存储桶中的所有多余文件。 rclone sync -i /home/local/directory remote:bucket

    【讨论】:

      最近更新 更多