第二章 系統環境介紹與問題描述
2.1 雲端架構問題
在無線感知雲端網路系統中我們選擇 HBase 作為我們的資料庫,因為 HBase 有許 多的優點,第一、HBase 為一開源的系統,便於我們可以根據我們的需求對系統做修改,
把其運作變得更適合我們的系統,第二、HBase 起初的設計目的就是為了使用在大量資 料的儲存上,像是 facebook 也使用 HBase Hive 作為其資料庫,而我們的無線感知雲端 網路系統為了管理數以萬計的無線感知網路基地台與使用者,有著大量的資料也是適用 於 HBase 的,第三、在無線感知雲端網路系統中我們追求即時性的服務,所以我們希望 資料庫的存取時間能夠越快越好,而 HBase 並不同於關聯性資料庫。傳統的關聯性資料 庫,每次存取時都以一整張表格(Table)為單位,存取速度較慢,而 HBase 則將資料按其 row-key 和 column 的數值分開儲存,以利快速存取,根據[11]的測詴,在讀寫比例為 1:1 的時候關聯性資料庫的讀寫時間都高於 HBase,考慮我們的應用,寫入與讀取的需求比 例相同 HBase 較為合適,在另一方面 HBase 可以根據儲存的資料量,定態調整所使用 的資源,因此表格資料量大時,能夠簡單的調整(scale-out)所使用的叢集,並能夠調整每 個節點負載,相對而言關聯性資料庫則難以動態的調整資源或是分配負載於各節點。
11
2.1.1 HBase 架構
HBase 架構如(圖七)所示,在 HBase 中基本的儲存單位為 Region,用來儲存使用者 定義的表格,當使用者想要讀取或存取資料時,將透過 Region Server 幫忙從 Region 將 資料寫入 Region 或是取出,每個 Region Server 將會管理數個 Region(s),Region Server 提供寫入與讀取的服務,並且定時將 Region 的資料存入到 hdfs 中,hdfs 負責資料的備 分與分散式儲存(圖七-C)。而在 HBase 中的表格在一開始將被 HMaste 預先指定給 Region Server 存在其所管理的 Region 中,當表格中資料增長並超出 Region 所容量大小時,將 根據 row-key 數值被切割成兩個 Region 儲存此表格,如(圖七)中起始表格存放 row-key 1~10 當超出 Region 大小時將 row-key 1~5 資料存至一個 Region 而 row-key 6~10 存放至 另一個 Region,並存放於原本的 Region Server 中,在一段時間之後由 HMaster 負責帄 衡 Region Server 所負責的 Region。
HMaster
(A-3) Refresh the Hadoop cluster (A-1) Start DataNode
(B-1) Start RegionServer (B-2) Register the hostname and IP
(B-3) Assign regions to RegionServer
HBase HDFS
Existing cluster
(C-1) Store regions to HDFS periodically Hadoop-conf
HBase Client
(D-1) Query -ROOT- table address (D-2) Reply the RegionServer
(D-3) Query .META. (D-4) Reply the RegionServertable address by row-key and table name
(D-5) Query region address by row-key and table name (D-6) Reply the RegionServer
(D-7) Get / Update the data by row-key (D-8) Reply the data / ACK
(C-2) Make 2 copies to other DataNodes
Region 1
Region 2
Original Table Assign to Region Servers
Assign to Region Servers
圖七、HBase 架構
12
Region 和 Region Server 的關係被記錄在.META.的表中,.META.表也將被分成多個 Regions 存放於不同 Region Server,其對應關係被記錄在唯一的-ROOT-表中,由一群同 步的 zookeeper 所管理,當一個使用者進行查詢時,將先根據表單名稱以及 row-key 向 zookeeper 查詢對應的.META.表所在位置,並進一步得到,所查詢目標所在的 Region Server,之後直接和 Region Server 溝通(圖七-D)。
2.1.2 問題討論
雖然使用 HBase 可以為我們系統帶來許多好處,但是要如何讓我們存取 HBase 可 以更為快速,這就關係到我們對於 HBase 中表格的設計以及取得資料的方法,在後面的 章節中,我們會根據不同的表格以及不同的資料量與讀取方式去做測詴,藉此找到適用 於我們系統的表格架構,並且根據一些已經有的 HBase 測詴結果文章來對我們的 HBase 做一些校調,希望對於 HBase 存取時間能對我們的系統造成最小的影響。
再另一方面,我們的系統想要支援大量的無線感知基地台與使用者,是必須要讓各 個元件有擴充的能力,像是行動資訊控管元件若在一大量無線感知網路基地台的環境下,
不可能只靠一個行動資訊控管元件就能即時的服務,所以勢必得對其做擴充的功能,在 後面的文章中我們會依據模擬測詴來討論擴充的條件。
13
2.2.1 分群問題(Clustering)
AP2