在AWS EMR主节点

时间:2018-02-24 21:45:23

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

如何在EMR群集的后台运行定期作业? 我在s3中使用了cron job和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文件需要一些库,它们应该安装到。

2 个答案:

答案 0 :(得分:0)

默认情况下,crontab安装在linux系统中,您无需手动安装。

要在cron中添加spark作业计划,请按照以下步骤进行操作

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

crontab -e

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

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

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

请参阅此link以了解有关cron。

希望这有帮助。

由于 拉维

答案 1 :(得分:0)

您需要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界面   主节点。有关更多信息,请参阅查看托管的Web界面   亚马逊EMR集群。