SAS Viya (26)

教學目標

初步了解如何新增與移除 Cloud Analytics Services (CAS) 伺服器 Worker 角色的基本概念。

重點概念

首先 SAS Cloud Analytics Services (CAS) 伺服器可以部署許多 Worker 角色節點,此時我們主要可以根據不同需求透過兩種方法 (Playbook)之一進行新的 Worker 角色節點的部署,分別為:

  1. site.yml:需要重新啟動 CAS 伺服器,主要增加永久的 Worker 角色節點,我們將會更新 CAS 伺服器相關設定,所以需要重新啟動 CAS 伺服器。
  2. deploy-casworker.yml:不需要重新啟動 CAS 伺服器,主要增加暫時的 Worker 角色節點,我們必需透過 Server Monitor 手動增加 Worker 角色節點至 CAS 伺服器中,直到下次 CAS 伺服器重新啟動時將會被刪除。

此外當我們針對 SMP 模式的 CAS Controller 增加 Worker 節點,此時會將 SMP 模式轉為 MPP 模式,則 CAS 伺服器就需要重新啟動。

停止 CAS 伺服器狀態

1
# sas-viya-cascontroller-default stop

啟動 CAS 伺服器狀態

1
# sas-viya-cascontroller-default start

重新啟動 CAS 伺服器狀態

1
# sas-viya-cascontroller-default restart

查看 CAS 伺服器狀態

1
# sas-viya-cascontroller-default status

接著新增 Worker 節點的主要有九個步驟,分別為:

  1. 決定使用哪一個方法增加節點至 CAS 伺服器。
  2. 確認授權金鑰是否能夠增加分析叢集的節點。
  3. 當增加至存在部署中時,其將會從儲存體中下載安裝最新的可用軟體,此時可能會有風險,所以建議使用本機儲存體。
  4. 所有機器皆必須要設定 cas 使用者帳號和 sas 群組。
  5. 登入至執行 Controller 的機器,準備部署軟體前置作業。
  6. 定義需要增加的 Worker 節點機器至 inventory.ini 檔案中。
  7. 增加機器至 inventory 檔案中的 sas-casserver-worker 群組中,若是要增加暫時的 Worker 節點請增加 persist=false 參數。
  8. 透過 Playbook 重新執行 Ansible 工具進行部署。
  9. 若是我們執行 deploy-casworker 的 Playbook 增加 Worker 角色節點之後,則我們必須登入至 CAS Server Monitor 增加新的 Worker 角色節點。

編輯 inventory 檔案

1
2
3
4
5
6
7
8
9
10
11

worker-05
ansible_ssh_host=worker05.example.com ansible_ssh_user=user1
ansible_ssh_private_key_file= ~/.ssh/id_rsa

[sas-casserver-worker]
worker-01
worker-02
worker-03
worker-04
worker-05

執行 site.yml 方法

1
# ansible-playbook site.yml -e "@/opt/sas/repomirror/repo_override.txt"

執行 deploy-casworker.yml 方法

1
# ansible-playbook deploy-casworker.yml -e "@/opt/sas/repomirror/repo_override.txt"

再來我們主要透過 CAS Server Monitor 增加新的 Worker 角色節點,其網址為「https://cloud.example.com/cas-shared-default-http」。我們必須登入 CAS Administrator 群組的帳號,接著點選「System State」->「Nodes」就能夠確認 Controller 節點和 Worker 節點是否已經正常連接,並且在透過此畫面手動新增和移除節點。

最後我們還能夠透過 SAS Studio 撰寫 CASL 程式查看 CAS 伺服器狀態,以及新增和刪除 Worker 角色節點。

查看 CAS 伺服器狀態

1
2
3
4
5
6
options cashost="cloud.example.com" casport=5570;
cas casauto;
proc cas;
session casauto;
builtins.serverStatus result=results;
run;

新增 Worker 角色節點

1
2
3
4
5
6
7
8
9
10
11
12
13
14
options cashost="cloud.example.com" casport=5570;
cas casauto;
proc cas;
session casauto;
accessControl.assumeRole / adminRole="superuser")
builtins.addNode result=results /
node={
"worker06.example.com", "worker07.example.com",
"worker08.example.com", "worker09.example.com"}
role="worker";
run;
print results.Nodes;
run;
quit;

刪除 Worker 角色節點

1
2
3
4
5
6
7
8
9
10
11
12
options cashost="cloud.example.com" casport=5570;
cas casauto;
proc cas;
session casauto;
accessControl.assumeRole / adminRole="superuser")
builtins.removeNode result=results /
node={"worker08.example.com", "worker09.example.com"};
run;
builtins.listNodes result=ln;
run; file log;
print ln.nodelist.where(strip(connected)='No')[, {'name', 'role', 'connected'}];
run;

總結 SAS Viya 平台主要能夠針對大數據進行大規模的分析與管理,所以針對 Cloud Analytics Services (CAS) 伺服器根據需求彈性調整 Worker 角色節點將會非常的重要。

相關資源