HBase 屬於 NoSQL 資料庫的一種。NoSQL 資料庫的興起是源於現代典型的關 聯式資料庫在一些必須快速存取大量資料的應用中表現非常差,例如巨量文檔建 一致性(Data Consistency)原則,使得各 table 可以獲取的資訊量增加。這樣的處理 方式,能使在需要快速的回應或大量資料處理分析的系統,減少與磁碟 Input/Output (I/O)的次數,增加處理的效能。舉例來說,於欄導向資料結構轉換中,一對多關
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
48
係需將多方的資訊「完全」儲存在一方,這對於一方原本只需保存多方的 RK 來說 是一種額外的資訊儲存,最明顯的錯誤就是資料重複存放,另一個錯誤就是資料 的不一致。
但是在需要快速的回應或大量資料處理分析的系統,抑或資料不需經常性修 改的系統中,資料的重複存放可以增加資料的存取速度,使得回應時間減少。舉 例來說-搜尋引擎是需要快速回應的一種系統,其底下資料不需要經常性的變更 以及修改。又於 GFS 的論文中提到,現在大量的系統多在 Appending 資料,而極 少在做寫入的操作。因此在這種情況下,這兩種錯誤可以被有條件性的忽略,而 交給使用者的應用程式來維護資料一致性。由此可得出一結論:少量、經常性修 改的資料可以儲存在傳統關聯式資料上面;而不需經常性修改、被大量存取進行 分析的資料可以儲存在 NoSQL 的資料庫中。
於本章所提出之轉換關係中,一對多、多對多及遞迴關係,皆存放各自關係 中的實體,而於原先關聯資料庫中僅需存放 RK 即可。這樣的情形會造成上述提及 之重複存放的問題,但因為所取之資料為不經常變動之資料,為了方便快速存取,
依照使用存取需求的不同可以犧牲此兩種問題,或只進行 RK 的儲存。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
49
系統實作 第四章
為了驗證轉換規則之有效性,本研究實作一台灣學術期刊搜尋引擎(Taiwan Academic Journal Search Engine)。本章的開端先介紹搜尋引擎所使用之技術。
第一節 使用技術暨環境
台灣學術期刊搜尋引擎所使用系統技術如下表:
技術類別 使用技術
前端畫面 JSP、Java Servlet
分散式環境 Hadoop
分散式演算法 Map/Reduce
資料庫 HBase
資料交換 Memcached
序列化技術 Avro
表 1. 台灣學術期刊搜尋引擎(TAJ)技術表
本搜尋引擎使用 JSP 做為前端畫面的呈現,底層使用 Hadoop 分散式環境佈署,
並使用 Memcached 作為資料交換快速存取之中介。資料庫則是使用 HBase,並搭 配 Avro 序列化轉換後之資料結構。
本系統所使用之 Hadoop 叢集環境如下:
‧
400GB 硬碟。為充分運用硬體資源,本研究令 HadoopMaster 擁有 JobTracker、Tasktracker、Namenode、Datanode、HMaster、HRegionServer 與 WebServer 等 6 種 任務角色,其餘 Slaves 則擁有 Tasktracker、Datanode、SecondaryNamenode 與 HRegionServer4 種任務角色。
‧
Search Web Page
P re se n ta ti o n L ay er
Ajax(JSON)
Task
TableController
Business Objects
B u si n es s Lo gi c La ye r
Query
Data Access Layer
Hbase Client API
HBase
Author Name
Precise/Fuzzy Search
Chapter Title Publisher Name Abstract
Paper Content
Author Paper Journal
Insert
Publisher
Rank Semantic Analysis Parser
Hbase Helper
Get Delete Update
Memcached
圖 23. TAJ 系統架構圖
本搜尋引擎系統架構圖如圖 23 所示,於前端提供兩種服務(一)學術期刊資訊 搜尋介面(二)期刊資訊之增刪改查 Web Service;其搜尋之工作由 Task Controller 掌 控並分派給其下之 Command 進行搜尋之動作。底層以 HBase 為基礎提供快速讀取 寫入服務;此外,以 Memcached 做為資料交換區域,凡欲存取 HBase 之資料會先 詢問 Memcached 該資料是否存在,如不存在則進入 HBase 進行搜尋。搜尋後之結 果會存入 Memcached 以供下次同樣之搜尋。以下篇章將以這兩項服務作為主軸,
詳細說明之。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
52