集群創建完成后,您可以通過手動執行腳本功能批量選擇節點來運行指定腳本,以實現個性化需求。本文為您介紹如何添加手動執行腳本。

背景信息

手動執行功能適用于長期存在的集群,對按需創建的臨時集群,應使用引導操作來完成集群初始化工作。引導操作詳情,請參見管理引導操作

手動執行類似引導操作,在集群創建完成后,您可以通過手動執行功能來安裝集群尚未支持的軟件和服務,例如:
  • 使用YUM安裝已經提供的軟件。
  • 直接下載公網上公開的軟件。
  • 讀取您OSS中的自有數據。
  • 安裝并運行服務(例如,Flink或者Impala),但需要編寫的腳本會復雜些。

前提條件

  • 已創建集群,詳情請參見創建集群
  • 請確保集群狀態處于運行中,其他狀態時集群不支持運行集群腳本。
  • 已開發或已獲取集群腳本(示例),并上傳到OSS。

注意事項

  • 一個集群同一時間只能運行一個集群腳本,如果有正在運行的集群腳本,則無法再提交執行新的集群腳本。每個集群最多保留10個集群腳本記錄,如果超過10個,則需要您將之前的記錄刪除才能創建新的集群腳本。
  • 集群腳本可能在部分節點上運行成功,部分節點上運行失敗。例如,節點重啟導致腳本運行失敗。在解決異常問題后,您可以單獨指定失敗的節點再次運行。當集群擴容后,您也可以指定擴容的節點單獨運行集群腳本。

操作步驟

  1. 進入腳本操作頁面。
    1. 登錄EMR on ECS控制臺
    2. 在頂部菜單欄處,根據實際情況選擇地域和資源組
    3. 集群管理頁面,單擊目標集群的集群ID。
    4. 單擊上方的腳本操作頁簽。
  2. 腳本操作頁面,單擊上方的手動執行頁簽。
  3. 單擊創建并執行
  4. 在彈出的對話框中,輸入名稱,在腳本位置下拉列表中選擇腳本位置,選中執行節點,還可以輸入自定義參數。
    Manual execution
    說明
    • 在使用集群腳本功能時,強烈建議您先在單個節點對集群腳本進行測試,待測試全部正常后,再在整個集群上操作。
    • 腳本路徑格式必須是oss://**/*.sh格式。
  5. 完成上述參數配置后,單擊確定
    集群腳本創建完成后,會顯示在集群腳本列表中,并且腳本處于運行中狀態。腳本狀態包括運行中、運行完成和提交失敗。
    • 單擊上方的操作歷史,可以查看任務進度,等待任務完成。
    • 單擊操作列的詳情,可以查看手動執行腳本的詳情。

      腳本對應節點的狀態包括等待中、運行中、完成、失敗、提交失敗和取消。

    • 單擊操作列的刪除,可以刪除手動執行腳本。

示例

與引導操作的腳本相似,您可以在集群腳本中指定需要從OSS下載的文件。下載示例文件oss://<yourBucket>/<myFile>.tar.gz到本地,并解壓到/yourDir目錄下。
#!/bin/bash
osscmd --id=<yourAccessKeyId> --key=<yourAccessKeySecret> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourBucketName>/<yourFile>.tar.gz ./<yourFile>.tar.gz
mkdir -p /<yourDir>
tar -zxvf <yourFile>.tar.gz -C /<yourDir>
說明 OSS地址有內網地址、外網地址和VPC網絡地址之分。如果是經典網絡,則需要指定內網地址(例如,杭州是oss-cn-hangzhou-internal.aliyuncs.com)。如果是VPC網絡,則需要指定VPC內網可以訪問的域名(例如,杭州是vpc100-oss-cn-hangzhou.aliyuncs.com)。
集群腳本也可以通過YUM安裝額外的系統軟件包。例如安裝ld-linux.so.2
#!/bin/bash
yum install -y ld-linux.so.2

集群默認使用root用戶來執行您指定的腳本。您也可以在腳本中使用su hadoop切換到hadoop賬戶。