簡體   English   中英

在AWS EMR主節點上運行cron任務

[英]Run cron task on AWS EMR master node

如何在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文件需要一些庫,應該將它們安裝到庫中。

默認情況下,crontab安裝在linux系統中,不需要手動安裝。

要在cron中添加Spark作業計划,請按照以下步驟操作

  • 登錄到主節點(SSH到主節點)。
  • 運行命令

crontab -e

  • 在crontab中添加以下行並將其保存(:w)

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

    現在,cron將每15分鍾安排一次作業。

請參考此鏈接以了解cron。

希望這可以幫助。

謝謝拉維

您需要SSH到主節點,然后從那里而不是在本地計算機上執行crontab設置:

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

使用SSH連接到主節點

安全外殼(SSH)是一種網絡協議,可用於創建與遠程計算機的安全連接。 建立連接后,本地計算機上的終端的行為就像在遠程計算機上運行一樣。 您在本地發出的命令在遠程計算機上運行,​​並且從遠程計算機輸出的命令顯示在終端窗口中。

當將SSH與AWS結合使用時,您將連接到EC2實例,該實例是在雲中運行的虛擬服務器。 使用Amazon EMR時,SSH最常見的用法是連接到充當集群主節點的EC2實例。

使用SSH連接到主節點可讓您監視集群並與之交互。 您可以在主節點上發出Linux命令,以交互方式運行Hive和Pig等應用程序,瀏覽目錄,讀取日志文件,等等。 您還可以在SSH連接中創建隧道,以查看主節點上托管的Web界面。 有關更多信息,請參閱查看Amazon EMR集群上托管的Web界面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM