全部產品
Search
文件中心

E-MapReduce:手動執行指令碼

更新時間:Jul 01, 2024

叢集建立完成後,您可以通過手動執行指令碼功能批量選擇節點來運行指定指令碼,以實現個人化需求。本文為您介紹如何添加手動執行指令碼。

背景資訊

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

手動執行類似引導操作,在叢集建立完成後,您可以通過手動執行功能來安裝叢集尚未支援的軟體和服務,例如:
  • 使用YUM安裝已經提供的軟體。
  • 直接下載公網上公開的軟體。
  • 讀取您OSS中的自有資料。
  • 安裝並運行服務(例如,Flink或者Impala),但需要編寫的指令碼會複雜些。

前提條件

  • 已建立叢集,詳情請參見建立叢集
  • 請確保叢集狀態處於運行中,其他狀態時叢集不支援運行叢集指令碼。
  • 已開發或已擷取叢集指令碼(樣本),並上傳到OSS。

注意事項

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

操作步驟

  1. 進入指令碼操作頁面。

    1. 登入E-MapReduce控制台

    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賬戶。