• 沒有找到結果。

巨量資料技術發展

第二章 文獻回顧

第二節 巨量資料技術發展

巨量資料使用到的技術層面相當廣泛,而新的技術亦持續在發展及精進當中,包 含在巨量資料的整合、操作分析及視覺化(Visualize),結合統計學及電腦科學及各專 業領域,屬於跨領域的應用(Manyika et al., 2011)。

巨量資料屬於資料科學(Data Science)的一部分,資料科學早期又稱為資料學

(Datalogy),該名詞於 1996 年在國際會議(國際分類協會聯合會(IFCS,International Federation of Classification Societies)東京雙年會議)正式提列為討論議題,定義為研 究自資料中萃取知識的科學(the Extraction of Knowledge from Data)。

巨量資料興起,包含了遙測探測技術、無線感測網路、相機及監視器及無線射頻 辨識等的發展,同時配合儲存技術的發展,讓資訊的蒐集可以更快速、更即時,使得 各資訊的來源越廣,所可以提供的資訊也更多。

而從空間資訊科學來看,無論是在自動製圖、遙感探測及或其他各種地理資訊的 呈現及處理,巨量資料的本質已幾乎成為通則,其面對的課題像是:需發布、整合應 用不同感測器(遙測衛星)來源取得的遙測影像,對於資料取得方法之描述、以至處 理校正過程資訊,都成為資料正確應用的必要條件,對應的作法像是依循圖書館學提 出的都柏林核心集(Dublin Core)及 ISO 系列等詮釋資料標準建置、註冊及分享作業 等;而此時地理資料處理(Geo-processing)由資料分析進入資料探勘(Data Mining), 透過機器學習(Machine-learning)的方法,以利擷取龐大資料內隱藏的關聯性;又地 理資訊是對真實世界建模量測的結果,當資訊來源於各種不同的方法、尺度及觀點,

透過資料品質指標(DQI,Data Quality Indicators)的建立,可提供資料使用的準則及 限制資訊,亦需各種演算法或工具將資料重整,以針對這些龐大且具不確定性的資料 取得一致性的描述,轉化為知識;透過知識本體(Ontology)的建立,將專業領域的 知識架建立起來,將各個來源的資料、表面看來異質性的資料、甚至決策上面對到的 真實問題,都可透過知識類別對應、串聯起來,以促成知識層面的整合利用(Jeansoulin,

2015)。

引用 IDC 的定義(Olofson, 2012),其將巨量資料技術(Big Data Technologies)

定位為新一代的技術及架構,設計用來有效率地萃取數量龐大且廣泛多樣化的資料,

並允許操作過程能高速的存取、探索及分析,包含了硬體、軟體及服務層面以整合、

組織、管理、分析及呈現(Visualization)資料。基礎於巨量資料基本特性的 3V(Volume, Velocity and Variety)架構外,另增加 1 個 V(Value),指的是資料價值,其價值的評 斷包含了技術投入成本及資料使用效益兩個層面,其中技術成本是相當關鍵的因子,

需考量投入軟硬體等基礎資訊架構耗費的資金成本、提升資料操作效率所減省的人力 成本及強化組織內部流程的經營成本。

而在討論巨量資料的技術時,亦可將其區分為 2 種類別(Olofson, 2012):

一、動態巨量資料(Big Data in Motion):指的是大量、快速串流的資料,需要於資 料接收的當下被立即過濾及正規化,並進一步反應、回饋事件的發生,如複合 事件處理(CEP,Complex Event Processing)的系統概念。

二、靜態巨量資料(Big Data at Rest):多數對於巨量資料的討論則是在靜態性的資 料處理技術, 能在最有效率的狀態下,就蒐集資料進行重整、轉化分析,讓資

料維持一定的狀態,提供有意義的搜尋、探勘及問題分析。資料處理包含了結 構化(如關聯式資料庫)及非結構化資料(如 XML 或一般使用的自然語言), 關聯式資料庫一般通用的查詢語言為 SQL 指令,因此在處理非關聯式資料庫 的查詢語法則統稱為 NoSQL,目前被提出來討論的技術包含:Key-Value、Grid-based key-value、List-processing、Graph 等,而現行被廣為使用的 Hadoop 便是 其中一種解決方案。

Hadoop 專案是由 Apache 軟體基金會發展的一套開放源(Open-source)軟體框架,

以 JAVA 為開發語言,可在跨平台作業系統環境運作,支援電腦叢集(Computer Clusters)

之間大型資料集的分散式運算,並允許偵測容錯。Hadoop 顯然成為近年巨量資料處理 的主流技術解決方案,目前包含 Yahoo、Google、Amazon 及 Facebook 等知名網站均 採用 Hadoop 為基礎速進行開發。其名稱來源並非是任何英文縮寫的簡稱,而是以原 始作者小孩的一隻黃色絨毛小象玩具為名,黃色小象目前也成為 Hadoop 的吉祥物。

其程式框架包含許多子模組及關聯的開發方案,其中 HDFS(Hadoop 分散式檔案系統,

Hadoop Distributed File System)為處理資料儲存議題的核心,而 MapReduce 及 YARN

(亦稱為 MRv2,即 MapReduce 2.0)部分則主要在於資料分散式運算議題。

HDFS 的分散式檔案儲存方式,係將檔案分割成許多特定大小的區塊(block),其 實體檔案分割之區塊同時以複本方式分散存放於不同的資料節點(Data Node),而透 過名稱節點(Name Node)處理檔案系統的詮釋資料,即管理檔案與各區塊間、以及 各區塊與各資料節點間的對應關係,控制跨節點間的資料讀寫流程;其複本分散存放 的作法,亦提升其資料之安全性,可因應硬體故障情形下搜尋複本自動回復。而 MapReduce 則是由 Google 提出的演算法,可用來協調電腦間資源配置,達到程式分 散式的運算處理,其中 Map 及 Reduce 均為一種演算函數,Map 函數的運算模式,是 將輸入的鍵值(Key-value)序列透過相同的運算輸出為另一組的中繼(Intermediate)

鍵值序列,Reduce 函數則是負責將相同的中繼鍵合併其所有相關聯的中繼值;過程中 由使用者進行函數的定義,而 MapReduce 框架則可進行後端電腦叢集間的的平行運 算,加速處理資料處理效能。YARN 則是基礎於 MapReduce 之上,主要在進行整個分 析流程的工作計劃(Job Scheduling)及電腦叢集資源的配置管理。其處理流程可參考 下圖所示,由資源管理者(Resource Manager)進行整體工作計劃,而主要應用

(ApplicationMaster)係與節點管理者(NodeManager)共同運作,負責每個 Map-Reduce 工作的實際運作,其運算分配並依檔案實際存放架構進行配置(圖 1):

圖 1 YARN 運作流程示意圖

(資料來源:Hadoop 官方文件網站)

相關文件