全部產品
Search
文件中心

E-MapReduce:手動執行指令碼

更新時間:Aug 29, 2025

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

背景資訊

手動執行指令碼可以批量選擇在已有節點上立即運行指定指令碼。手動執行功能適用於長期存在的叢集,對按需建立的臨時叢集,應使用引導操作來完成叢集初始化工作。引導操作詳情,請參見引導操作執行指令碼

手動執行類似引導操作,在叢集建立完成後,您可以通過手動執行功能來安裝叢集尚未支援的軟體和服務,例如:

  • 使用YUM安裝已經提供的軟體。

  • 直接下載公網上公開的軟體。

  • 讀取您OSS中的自有資料。

  • 安裝並運行服務(例如,pig組件等),但需要編寫的指令碼會複雜些。

前提條件

  • 已建立叢集,詳情請參見建立叢集

  • 請確保叢集狀態處於運行中,其他狀態時叢集不支援運行叢集指令碼。

  • 已開發或已擷取叢集指令碼(樣本),並上傳到OSS。

注意事項

  • 手動執行指令碼的記錄最多保留60天。

  • 一個叢集同一時間只能運行一個叢集指令碼,如果有正在啟動並執行叢集指令碼,則無法再提交執行新的叢集指令碼。

  • 叢集指令碼可能在部分節點上運行成功,在部分節點上運行失敗。例如,節點重啟導致指令碼運行失敗。在解決異常問題後,您可以單獨指定失敗的節點再次運行。當叢集擴容後,您也可以指定擴容的節點單獨運行叢集指令碼。

操作步驟

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

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 單擊目的地組群的叢集服務

    4. 單擊上方的指令碼操作頁簽。

  2. 指令碼操作頁面,單擊上方的手動執行頁簽。

  3. 單擊建立並執行

  4. 在彈出的對話方塊中,輸入名稱,在指令碼位置下拉式清單中選擇指令碼位置,在執行範圍下拉式清單中選擇指令碼執行的範圍。

    說明
    • 在使用叢集指令碼功能時,強烈建議您先在單個節點對叢集指令碼進行測試,待測試全部正常後,再在整個叢集上操作。

    • 指令碼路徑格式必須是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賬戶。