【问题标题】:Run cron task on AWS EMR master node在 AWS EMR 主节点上运行 cron 任务
【发布时间】:2018-02-25 23:39:44
【问题描述】:

如何在 EMR 集群的后台运行定期作业? 我在 s3 中有带有 cron 作业和 application.py 的 script.sh,并希望使用以下命令运行集群:

aws emr create-cluster 
--name "Test cluster"
–-release-label emr-5.12.0 
--applications Name=Hive Name=Pig Name=Ganglia Name=Spark
--use-default-roles 
--ec2-attributes KeyName=myKey 
--instance-type m3.xlarge 
--instance-count 3 
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,
Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,
Args["s3://mybucket/script-path/script.sh"]

最后,我希望 script.sh 中的 cron 作业执行 application.py 现在我不明白如何在主节点上安装 cron,python 文件需要一些库,它们应该安装到。

【问题讨论】:

    标签: amazon-web-services cron emr amazon-emr


    【解决方案1】:

    您需要通过 SSH 连接到主节点,然后从那里执行 crontab 设置,而不是在本地计算机上:

    https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html

    使用 SSH 连接到主节点

    Secure Shell (SSH) 是一种网络协议,可用于创建 与远程计算机的安全连接。建立连接后, 本地计算机上的终端的行为就像它在 远程计算机。您在本地发出的命令在远程运行 计算机,远程计算机的命令输出出现在 你的终端窗口。

    当您将 SSH 与 AWS 结合使用时,您将连接到 EC2 实例, 这是在云中运行的虚拟服务器。工作时 Amazon EMR,SSH 最常见的用途是连接 EC2 充当集群主节点的实例。

    使用 SSH 连接到主节点使您能够 监控集群并与之交互。您可以发出 Linux 命令 主节点,以交互方式运行 Hive 和 Pig 等应用程序, 浏览目录、读取日志文件等。您还可以创建一个 SSH 连接中的隧道以查看托管在 主节点。有关详细信息,请参阅查看托管在的 Web 界面 Amazon EMR 集群。

    【讨论】:

      【解决方案2】:

      linux系统默认安装crontab,无需手动安装。

      要在 cron 中添加 spark 作业调度,请按照以下步骤操作

      • 登录到主节点(SSH 到主节点)。
      • 运行命令

      crontab -e

      • 在 crontab 中添加以下行并保存 (:w)

        */15 0 * * * /script-path/script.sh

        现在 cron 将每 15 分钟安排一次作业。

      请参考link 了解 cron。

      希望这会有所帮助。

      谢谢 拉维

      【讨论】:

      • 此命令在我的 PC 上运行 contrab 任务,但我想在 EMR 的主节点上运行 contrab 任务
      • 您需要通过 SSH 连接到主节点并进行配置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多