[英]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作業計划,請按照以下步驟操作
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.