叢集建立完成後,您可以通過手動執行指令碼功能批量選擇節點來運行指定指令碼,以實現個人化需求。本文為您介紹如何添加手動執行指令碼。
背景資訊
手動執行指令碼可以批量選擇在已有節點上立即運行指定指令碼。手動執行功能適用於長期存在的叢集,對按需建立的臨時叢集,應使用引導操作來完成叢集初始化工作。引導操作詳情,請參見引導操作執行指令碼。
手動執行類似引導操作,在叢集建立完成後,您可以通過手動執行功能來安裝叢集尚未支援的軟體和服務,例如:
-
使用YUM安裝已經提供的軟體。
-
直接下載公網上公開的軟體。
-
讀取您OSS中的自有資料。
-
安裝並運行服務(例如,pig組件等),但需要編寫的指令碼會複雜些。
前提條件
注意事項
-
手動執行指令碼的記錄最多保留60天。
-
一個叢集同一時間只能運行一個叢集指令碼,如果有正在啟動並執行叢集指令碼,則無法再提交執行新的叢集指令碼。
-
叢集指令碼可能在部分節點上運行成功,在部分節點上運行失敗。例如,節點重啟導致指令碼運行失敗。在解決異常問題後,您可以單獨指定失敗的節點再次運行。當叢集擴容後,您也可以指定擴容的節點單獨運行叢集指令碼。
操作步驟
-
進入指令碼操作頁面。
-
在頂部功能表列處,根據實際情況選擇地區和資源群組。
-
單擊目的地組群的集群服务。
-
單擊上方的脚本操作頁簽。
-
在脚本操作頁面,單擊上方的手动执行頁簽。
-
單擊创建并执行。
-
在彈出的對話方塊中,輸入名称,在脚本位置下拉式清單中選擇指令碼位置,在执行范围下拉式清單中選擇指令碼執行的範圍。
說明-
在使用叢集指令碼功能時,強烈建議您先在單個節點對叢集指令碼進行測試,待測試全部正常後,再在整個叢集上操作。
-
指令碼路徑格式必須是oss://**/*.sh格式。
-
-
完成上述參數配置後,單擊确定。
叢集指令碼建立完成後,會顯示在叢集指令碼列表中,並且指令碼處於運行狀態。指令碼狀態包括运行中、运行完成和提交失败。
-
單擊操作列的详情,可以查看手動執行指令碼的詳情。
-
單擊手動執行指令碼右側的查看执行结果可以查看指令碼執行情況。
指令碼對應節點的狀態包括等待中、运行中、完成、失败、提交失败和取消。
-
單擊操作列的删除,可以刪除手動執行指令碼。
-
樣本
與引導操作的指令碼相似,您可以在叢集指令碼中指定需要從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賬戶。