簡體   English   中英

在 EMR 集群上安裝應用軟件后運行引導操作

[英]run bootstrap action after application software installed on EMR cluster

有沒有辦法在安裝應用軟件(如:spark)后運行bootstrap action? 我的目的是用我的自定義 spark jar 替換 AWS spark jar 之一,這必須在 AWS 安裝原始 spark 后完成。

我不通過正常步驟執行此操作的原因是因為我想在集群的所有節點上執行此替換,而不僅僅是在主節點上。

雖然這個問題很老,但我讓它起作用並為仍然需要幫助的人添加答案。 正如上面的評論,我測試的配置是:

發布 label:emr-5.30.1 Hadoop 分布:Amazon 2.8.5 應用:spark 2.4.5

問題實際上是在安裝 Spark 等軟件之前執行 AWS EMR 上的 Bootstrap。

解決方案:分兩步進行

  1. 添加引導腳本以將第二個腳本作為后台進程運行。 這完成了引導程序,並使您能夠更多地等待安裝發生。 以下示例腳本采用兩個參數,即 S3 存儲桶路徑和環境前綴,並顯示如何將它們傳遞到下一個腳本。

     #./bin/bash aws s3 cp $1/$2/some/path/to/second/script/emr_second_script.sh. chmod +x emr_second_script.sh nohup./emr_second_script.sh $1 $2 &>/dev/null &
  2. 編寫您的第二個腳本,第一個腳本在后台運行。 在此腳本中檢查安裝目錄是否出現,否則等待/睡眠。 滿足該條件后,執行所需的魔術。 以下示例腳本采用兩個參數,S3 存儲桶路徑和環境前綴。

     #,/bin/bash while [. -e /lib/spark/jars/ ] do echo "Spark installation not found. waiting..." sleep 15 done echo "Spark installation found." # Do your actual scripting work here. eg Copy jars from S3. enter code here sudo aws s3 cp $1/$2/path/to/my/jar/my-jar-1.0.jar --region us-east-1 /lib/spark/jars exit(0)

您可以在此處找到相同的解決方案來解決略有不同的問題。

暫無
暫無

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

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