第四章 邊坡即時監測與大數據分析平台建置
第二節 系統架構與開發工具
邊坡即時監測與大數據分析平台建立於雲端服務上,包含有大數據分析、即 時監測資料與山坡地社區建築管理履歷資料庫介接、監測資料視覺化與示警服務,
系統架構如圖4-2所示。感測器透過3G 無線網路即時傳輸監測資料至遠端資料 庫伺服器儲存,並連接大數據分析叢集系統進行邊坡穩定分析預測, 再由 MapGuide、JavaScript 經網站伺服器提供網際網路地理資訊系統(Web-GIS)與即時 監測資料視覺化服務,同時透過 Python 監控即時監測數據,並經郵件伺服器發 布示警服務。以下分就大數據分析系統架構、即時監測與資料庫介接、及監測資 料視覺化與示警服務開發工具進行說明。
圖4-2 邊坡即時監測與大數據分析平台建置流程
資料來源:本研究計畫成果。
壹、大數據分析系統架構
大數據分析是指對巨量資料進行分析,並透過分析獲取深入有用且有價值的 訊息。資料屬性包括資料數量、分析速度、資料類別之多樣性以及真實性等,呈 現了巨量資料不斷增加的複雜性。為有效管理與維護巨量資料,並快速分析、支 援即時運算,自 Google 於 2003 年起提出分散式檔案系統、MapReduce 框架與 bigtable 後,雲端運算與大數據分析技術快速發展,提高巨量資料處理能力。目 前最熱門的分散式運算框架為 Hadoop,且延續建研所 105 年計畫成果,本計畫 擬採用Hadoop 建構儲存與處理大數據之開源雲端運算平台。
Hadoop 是 Apache 軟體基金會之開放原始碼計畫(open source project)作為開 放原始碼搜尋引擎之一部分,透過 Java 開發設計,提供巨量資料分散儲存與運 算環境。其兩大核心分別為分散式檔案系統HDFS(Hadoop Distributed File System) 以及 MapReduce 分散式運算框架,由分散式檔案系統存取巨量資料,再透過 MapReduce 對資料進行分散式運算。茲就兩者架構與操作運行方式簡述如下:
一、HDFS 分散式檔案系統
HDFS 為 Hadoop 之資料儲存服務系統,為 Google File System (GFS) 的 開源實作,可運行於低廉之電腦叢集,透過網路將資料分散儲存於多台主機 以 存 取 超 大 型 檔 案 。 其 架 構 為 主 從 式(Master-Slave) 架 構 , 包 含 一 個 NameNode 與多個 DataNode,如圖4-3。檔案透過分散式儲存方式分割為數 個資料區塊儲存於檔案系統中,由NameNode 記錄檔案與資料區塊之對應,
Secondary NameNode 備份 NameNode 資料並合併日誌資料與映像,DataNode 則實際儲存資料區塊。當客戶端(Client) 要進行檔案儲存作業時,首先會將 檔案分割為數個資料區塊,並由 NameNode 依序分配資料區塊至 DataNode 進行儲存與備份。檔案讀取時,則從 NameNode 取得檔案與資料區塊之對 應,以及資料區塊位於DataNode 存放位址,再由客戶端向 DataNode 下載該 檔案對應之所有資料區塊。
二、MapReduce 分散式運算架構
MapReduce 同樣為主從式架構,包含一個 JobTracker 與多個 TaskTracker,
如圖4-3。當客戶端提出運算作業時,由JobTracker 分派任務至 TaskTracker 運行,並掌握任務進度及TaskTracker 運行狀態,而 TaskTracker 則實際執行 運算並回報運行狀態予JobTracker。其核心運算理念為「分而治之」,將資料 運算過程拆分為Map 與 Reduce 兩大主要步驟,拆分運算作業成多個任務、
交由多個 TaskTracker 執行。原資料經過分割成較小資料後,分配至不同節 點作為輸入資料,由各節點執行 Map 任務:依運算需求將小資料之內容進 行運算處理,並針對每一運算結果值(value)給予一鍵 (key),由此得到各式 鍵值對<key, value>;之後執行 Reduce 任務,將所有小資料中具有相同 key 之value 集合彙整於不同節點,經運算處理後再形成新的結果與鍵值對,並 數據分析,最終透過網際網路地理資訊系統與視覺化工具,如 MapGuide、
Highcharts、ZingChart,將分析及監測數據即時呈現於網路供使用者查閱。
參、監測資料視覺化與示警服務開發工具
本系統透過 MapGuide、Python 及 Javascript 開發監測資料視覺化網路服務 與示警服務,說明如下:
一、MapGuide
MapGuide 為開源地理資訊系統軟體,可執行於任何單一的電腦、或是 以分散式的架構橫跨多台電腦,讓使用者快速開發、部署網路地圖應用及地 理資訊服務的網路平台。MapGuide 可以在 Linux 跟 Windows 上使用;支援 Apache 以及 IIS 網路伺服器,提供以 PHP、.Net、Java 以及 Javascript 的 APIs 來開發應用程式,其所有設定是透過一組 XML 的資料檔案來管理。此外,
MapGuide 支援讀取了許多常用的地理資料格式、資料庫及標準規格,並能 將其他站台的WMS 及 WFS 納入網站部署中。在用戶端具有一個互動性的 viewer,支援了許多傳統的地理資訊功能,如圖徵選取、屬性查詢、buffer、
測量等功能。本計畫延續105 年度計畫成果,以 MapGuide 軟體將即時監測
本服務以JavaScript 開發即時監測資料展示介面,提供網頁地圖、即時 監測資料與狀態展示、監測歷時變化視覺化等互動展示服務。本系統採用 Bootstrap 開源網頁框架開發,包含有 HTML、css 及 JavaScript 框架,並提 供各式元件與擴充套件,可支援Internet Explorer、Google Chrome、Firefox、
Safari 等瀏覽器。網頁地圖採用 Leaflet 開源 JavaScript 函式庫,以建立互動 式地圖,可於地圖上提供感測器位置、監測狀態標示、即時監測資料說明等。
另透過Plotly、Highcharts、ZingChart 等 JavaScript 函式庫建立即時與歷史監 測資料圖表,以視覺化呈現感測器警戒狀態及歷時變化。本展示介面係為山
表4-1 資料庫更新圖資表
第一階層 第二階層 第三階層 第四階層 資料來源 權限
監測儀器
雨量筒 土壤含水量計 邊坡獨立智能感測器
- - 內政部建研所 全
崩塌預測 - - 內政部建研所 限
權屬界線 都市計畫區 - 內政部 限
歷史災害與潛勢圖資 歷史災害 年度崩塌地 行政院農委會林務局 限
歷史災害與潛勢圖資 歷史災害 歷史淹水位置 歷年颱風淹水範圍 經濟部水利署 限
歷史災害與潛勢圖資 歷史災害 歷年土石流災害紀錄 土石流點位
重大土砂災情 行政院農委會水保局 限
歷史災害與潛勢圖資 潛勢圖資
106 年土石流潛勢溪流圖 106 年土石流潛勢溪流影響範圍 106 年土石流潛勢溪流集水區
- 行政院農委會水保局 全
歷史災害與潛勢圖資 潛勢圖資 淹水潛勢圖 - 經濟部水利署 全
註:權限欄位「全」表示該圖層可供一般民眾查詢;「限」表示該圖層不可供一般民眾查詢。