SAS 系統管理 (37)

教學目標

初步了解 SAS LASR Analytic Server 如何載入資料至記憶體中進行分散式分析任務。

重點概念

首先 SAS LASR Analytics Server 主要是針對 SAS Viusal Analytics 和 SAS Visual Statistics 解決方案的 In-memory 分析引擎,其被設計應用於大量具擴展性的分散式環境。其中 SAS Visual Analytics 解決方案提供分散式運算環境主要包括兩個關鍵的產品,分別為:

  1. SAS High-Performance Analytics Infrastructure
  2. SAS LASR Analytics Server

SAS High-Performance Analytics Infrastructure

所謂 SAS High-Performance Analytics Infrastructure 主要在高效能的環境中執行分析任務,特性為大量平行處理 (Massively Parallel Processing,MPP),此架構被使用於在分散式資料儲存一體機或 Hadoop 叢集進行大數據的分析架構,其中我們會透過 SAS Plug-ins for Hadoop 套件進行 Hadoop 平台相關連線設定,其中 Hadoop 平台主要是專注在硬碟儲存空間的應用。

SAS LASR Analytics Server

所謂 SAS LASR Analytics Server 主要是 In-memory 引擎提供非常快速和擴展分析的效能,相當於 SAS Viusal Analytics 的大腦,其中 LASR 伺服器主要是專注在記憶體儲存空間的應用。此外透過 SAS High-Performance Analytics Infrastructure 架構將能夠有整合 Hadoop 平台與 SAS LASR Analytics Server 在高效能的環境中執行分析任務。

Hadoop Name Node 和 LASR Root Node

所謂 Hadoop Name Node 主要負責叢集中 Hadoop 軟體服務,其主要持續追蹤所有在 Hadoop 分散式檔案系統 (Hdoop Distributed File System,HDFS) 中的活動,以及管理叢集以利確保資料可用性。然而所謂 LASR Root Node 主要負責 SAS LASR Analytic Server 的服務,其主要控管請求,以及直接進行所有 In-memory 分析處理的活動,接著回傳結果。因此若我們以 Hadoop 平台為 LASR 的資料提供者時,則必須將 Hadoop Name Node 和 LASR Root Nmae 放在相同主機中。

Hadoop Data Node 和 LASR WorkersNode

所謂 Hadoop Data Node 主要負責儲存資料在硬碟中,因此此硬碟儲存系統會是非常關鍵的硬體元件,並且為每台主機上獨立的服務,此外並不會分享任何硬體資源給其它節點。然而所謂 LASR Worker Node 主要負責在每台機器的記憶體中執行資料分析的功能,因此此記憶體會是非常關鍵的硬體元件。因此若我們以 Hadoop 平台為 LASR 的資料提供者時,則必須將 Hadoop Data Node 和 LASR Worker Nmae 分享至相同主機中。

Hadoop 處理流程

所謂 Hadoop 處理流程為當檔案儲存在 HDFS 中時,其將會被打散至區塊中,Hadoop Name Node 將會指定區塊給叢集中不同的 Hadoop Data Node,以利確保在面對硬體損毀時資料的可用性,若有其中一個 Hadoop Data Node 損毀則其它 Hadoop Data Node 針對損毀區塊將會進行復原 。然而每個區塊皆會被複製,預設設定為三次,因此複製將會直接影響硬碟空間的使用量,例如儲存 1 TB 的資料在 HDFS 中則在叢集中必須要有 3 TB 的硬碟空間。

SASHDAT 資料表

所謂 SASHDAT 資料格式是二進位和壓縮的儲存結構,它主要是被用於優化在平行高效能環境的分析處理,當 SASHDAT 資料表被建立在 HDFS 中時,其區塊會被平均分散至所有 LASR Workers Node 機器中以利確保每一個節點主機有相同數量的資料。然而每個區塊皆會複製,預設設定為二次,因此複製將會直接影響硬碟空間的使用量,例如儲存 1 TB 的資料在 HDFS 中則在叢集中必須要有 2 TB 的硬碟空間。

SAS LASR Analytic Server 處理流程

所謂 SAS LASR Analytic Server 是由 LASR Root Node 和被分散至多台機器的 LASR Workers Node 群組所組成,所以 SAS LASR Analytic Server 為持續性 In-memory 分析,意指其被設計於處理已載入至記憶體中的大量資料,當資料在記憶體中時,代表無需等待硬碟的存取,使得 LASR 能夠更快速的進行處理,同時不僅多張資料表可以被增加至 SAS LASR Analytic Server 中,也能啟動多個 SAS LASR Analytic Server彼此之中獨立運作。

在 SAS LASR Analytic Server 中載入資料作業

當資料載入至 SAS LASR Analytic Server 中將能夠透過 Base SAS 與 SAS/ACCESS 引擎進行存取,一般來說,我們皆是循序將資料載入至 LASR Root Node 中,接著 LASR Root Node 才會將資料平均分散儲存至 LASR Workers Node 記憶體中,其步驟分別為:

  1. SAS Compute Service 從來源資料讀取資料。
  2. SAS Compute Service 傳送資料至 SAS LASR Analytic Server 中的 LASR Root Node。
  3. LASR Root Node 將資料平均分散至 LASR Workers Node 中。(註:此步驟可能會有 Bottleneck 在 LASR Root Node 中。)
  4. LASR Workers Node 將資料儲存至關聯 Hadoop Data Node 的 HDFS 儲存空間中當成 SASHDAT 資料表。
  5. SASHDAT 資料表對應在 HDFS 中的區塊將會被直接載入至每台 Hadoop Data Node 關聯 LASR Workers Node 的記憶體中。

在 SAS LASR Analytic Server 中執行分析作業

當載入完成大量資料至 LASR Worker Node 的記憶體中時,接著當 LASR Root Node 接到分析請求時,其會將請求針對資料區塊對應的所有 LASR Worker Node 執行分析作業,其六步驟分別為:

  1. 當使用者想要查看報表時,SAS 網頁應用程式就會發出請求至 SAS LASR Analytic Server 執行分析作業,請注意報表對應的資料必須儲存在 LASR Workers Node 記憶體中。
  2. LASR Root Node 直接透過 LASR Workers Node 執行針對節點中的資料執行必要計算。
  3. LASR Workers Node 回傳計算結果給 LASR Root Node 中。
  4. LASR Root Node 等待所有 LASR Workers Node 回傳計算結果,之後計算最後答案的結果。
  5. LASR Root Node 回傳答案的結果資料集,接著使用者就能夠查看報表了。

最後 SAS LASR Analytic Server 中的 LASR Workers Node 建議相同的硬體規格,以利進行資料量的評估,另一方面 LASR Root Node 會等待所有 LASR Workers Node 分析回傳結果。

總結 SAS Visual Analytics 解決方案提供分散式運算環境進行分析任務,主要包括兩個關鍵的產品為 SAS High-Performance Analytics Infrastructure 和 SAS LASR Analytics Server,以及搭配不同的資料提供者,像是 Hadoop 平台,就能夠自動將資料轉換為 SASHDAT 格式儲存至 SAS LASR Analytics Server 的記憶體中,以利進行分散式分析任務。

相關資源