1. 程式人生 > >Hbase-簡介-結構(hbase架構介紹)

Hbase-簡介-結構(hbase架構介紹)

背景
GFS:分散式檔案系統,使用商用硬體叢集儲存海量資料。檔案將資料在節點之間冗餘複製(伺服器故障,也不會影響資料的可用性)。它對資料的流式讀取也做了優化,可邊處理邊讀取。
適合儲存少許非常非常大的檔案,而不適合儲存成千上萬的小檔案,因為檔案的元資料資訊最終要儲存在主節點的記憶體中,檔案越多壓力越大。

MapReduce:GFS架構的一個補充,它能夠充分利用GFS叢集中的商用伺服器提供的大量CPU。MR和GFS形成了處理海量資料的核心力量。
不過兩個系統都缺乏實時隨機儲存資料的能力(意味著尚不足以處理Web服務)。

Google嘗試找到一種能驅動互動應用的解決方案。

Hbase 是從摒棄關係型的特點、採用簡單的API來進行增刪改查、一個掃描函式、較大的鍵範圍或全表範圍上迭代出發構建的。
Hbase實現了BigTable

的儲存架構

表、行、列、單元格
Hbase中最基本單位是列,一列或者多列形成一行,由唯一的行健來確定儲存。反過來,一個表中有多行,每列可能有多個版本,在每一個單元格中儲存不同值。
這裡寫圖片描述
在字典序中,是按照二進位制逐位元組從左到右一次對比每一個主鍵。
按照行健排序可以得到RDBMS的主鍵索引一樣的特徵。(行健是唯一的,只能出現一次),行健可以是任意位元組陣列,但不一定是人可直接讀的。
一行由若干列組成,若干列組成一個列族。(有助於構建語義邊界,還有助於設定特性(如壓縮,或者指示他們存在記憶體))
一個列族的所有列儲存在同一個底層檔案裡,這個儲存檔案HFile
列族需要在表建立時就定義好,不能太頻繁修改,數量也不能太多。
列數量沒有限制。
列值也沒有型別和長度限制。
行和列沒有像表格一樣排列,而是採用標籤描述。(資訊都是儲存在一個特定的標籤下)

NULL值:RDBMS中沒有值的地方會新增一個null,但在Hbase的架構中,直接省略了整個列,(即空值不會有任何消耗,不佔空間)

列值都具有時間戳,預設系統指定,也可使用者顯示設定。一般用過時間戳來區分版本數,一個單元格的值按照降序排列在一起,優先讀取最新值。
使用者可以指定每一個值所能儲存的最大版本數。還支援謂詞刪除
HBase是一個稀疏的、分散式的、持久化的、多維的對映、有行健、列鍵和時間戳索引。

webtable:Bigtable和Hbase的應用場景,儲存從網際網路上抓取的網頁。

行資料的存取是原子性的,這促成了系統架構具有強一致性。
多版本和時間戳能幫助應用層解決一致性問題。

自動分割槽
region:HBase中擴充套件和負載均衡的基本單元,本質是以行健排序的連續儲存區間。(如果region太大,系統會動態拆分,相反,就把多個region合併)
一張表初始只有一個region,每次資料插入,系統都會檢查是否超過了配置的最大值。超過就用中間鍵將region拆分為兩個相等的子region。

每一個region只能被一臺region伺服器(region server)載入,每一臺region server可以載入多個region
當一個伺服器出現故障後,該伺服器上的region可以快速恢復,並獲得細粒度的負載均衡,因為當服務於某個region的伺服器當前負載過大、產生錯誤或者停止使用或者不可用時,系統會將region移到其它伺服器上。
region的拆分非常快。因為拆分之後的region讀取的仍然是元儲存檔案,只到合併或者非同步地寫為獨立檔案。

相關推薦

Hbase-簡介-結構hbase架構介紹

背景 GFS:分散式檔案系統,使用商用硬體叢集儲存海量資料。檔案將資料在節點之間冗餘複製(伺服器故障,也不會影響資料的可用性)。它對資料的流式讀取也做了優化,可邊處理邊讀取。 適合儲存少許非常非常大的檔案,而不適合儲存成千上萬的小檔案,因為檔案的元資料資訊最

HBase資料結構讀書筆記

背景:     最近在做一些跟大資料相關的東西,涉及到資料的儲存和分析,考慮各個方面,選擇使用HBase進行儲存,使用原生Java API進行資料分析,之後會陸續寫一系列來說明最近做的東西,給像我這樣未

Hadoop學習筆記—15.HBase框架學習基礎知識篇

dfs hdfs keep 負載均衡 包含 兩個 列族 文件存儲 version HBase是Apache Hadoop的數據庫,能夠對大型數據提供隨機、實時的讀寫訪問。HBase的目標是存儲並處理大型的數據。HBase是一個開源的,分布式的,多版本的,面向列的存儲模型,它

45次課 LNMP架構介紹、 MySQL安裝、PHP安裝、Nginx介紹

初始 統一 tar.gz api blog mit read oca 能力 LNMP架構介紹 MySQL安裝 開始安裝首先進入/usr/local/src目錄下,把所有安裝包統一放到這個目錄下方便查找 [root@100xuni1 src]# cd /usr/loc

HBase Block Cache塊緩存

efault 可能 hat 有趣 values 負載 property site set Block Cache HBase提供了兩種不同的BlockCache實現,用於緩存從HDFS讀出的數據。這兩種分別為: 默認的,存在於堆內存的(on-heap)LruBlockCa

HBase快照管理CDH5.8.0

摘錄自《HBase不睡覺書》。     HBase提供了快照(snapshot)功能。可以使用快照來將某個表恢復到某個時刻的結構和資料,而且不需要擔心建立和恢復的郭過程會很緩慢,實際上這個速度非常快,往往只有數秒。     快照並不實際地複製資料,而是儲存一份檔案列表,通

HBase框架學習基礎知識篇

HBase是Apache Hadoop的資料庫,能夠對大型資料提供隨機、實時的讀寫訪問。HBase的目標是儲存並處理大型的資料。HBase是一個開源的,分散式的,多版本的,面向列的儲存模型,它儲存的是鬆散型資料。 一、HBase:BigTable的開源實現 1.1 HBas

hbase安裝配置整合到hadoop

1.快速單機安裝: 在單機安裝Hbase的方法。會引導你通過shell建立一個表,插入一行,然後刪除它,最後停止Hbase。只要10分鐘就可以完成以下的操作。 1.1下載解壓最新版本 $ tar xfz hbase-0.90.4.tar.gz $ cd hbase-0.

Hbase安裝配置含分散式ZooKeeper

環境說明 系統為CentOS 6.0 192.168.255.128  =》 server01 192.168.255.130  =》 server02 192.168.255.131  =》 server03 /etc/hosts檔案中有這些IP和域名的對映關係 配

統計學基礎與R語言----1簡介與一些R函式介紹

最近在看一些機器學習的書,想起自己以前學的R和統計學,感覺以前都是囫圇吞棗,沒有搞清楚。現在重新把以前的書拿出來讀一讀,並把程式碼再敲一遍,感覺收穫還是蠻多的。 1.1 我的參考書籍 R語言學習書籍:資料探勘與R語言 統計學:R語言與統計分析 1.2 程式設計環境

HBase條件查詢多條件查詢

Author:Pirate Leo轉載請註明出處,謝謝。文中可能涉及到的API:Begin!HBase的查詢實現只提供兩種方式:1、按指定RowKey獲取唯一一條記錄,get方法(org.apache.hadoop.hbase.client.Get)2、按指定的條件獲取一批記

[Linux] Linux 中的基本命令與目錄結構待移除

head 命令 存在 壓縮 下載 創建文件 name 批處理 targe 簡化 Linux 中的基本命令與目錄結構 目錄 一、Linux 基本目錄結構 二、基本命令 三、瀏覽目錄 四、中間命令 五、更改密碼 六、環境變量和 shell 變量 七、命令路徑

PostScript語言教程一、介紹

scrip 方式 生成 語言教程 有著 曲線 方向 大量 運算 一、介紹 POSTSCRIPT語言是打印機頁面魔術的一種程序設計語言。他擁有著廣泛的圖形操作,並且可以以任意方式,包含變量,函數,以及過程的任意組合 。 POSTSCRIPT頁面描述是由解析器運行的程序(gs)

習題3.8 符號配對20 分 浙大版《數據結構第2版》題目集

檢查 size pro 是否 ring 所有 編寫 bre ace 請編寫程序檢查C語言源程序中下列符號是否配對:/*與*/、(與)、[與]、{與}。 輸入格式: 輸入為一個C語言源程序。當讀到某一行中只有一個句點.和一個回車的時候,標誌著輸入結束。程序中需要檢

習題3.10 漢諾塔的非遞歸實現25 分浙大版《數據結構第2版》題目集

-i pro 數據結構 但是 int 遞歸實現 記錄 表達 names 借助堆棧以非遞歸(循環)方式求解漢諾塔的問題(n, a, b, c),即將N個盤子從起始柱(標記為“a”)通過借助柱(標記為“b”)移動到目標柱(

習題3.4 最長連續遞增子序列20 分浙大版《數據結構第2版》題目集

space align font list 格式 ott mar 不能 第一次 給定一個順序存儲的線性表,請設計一個算法查找該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列為(3,4,6,8)。 輸入格式: 輸入

習題3.11 表達式轉換25 分浙大版《數據結構第2版》題目集

lang == lan 包括 設計程序 不用 運算 出現 加減 算術表達式有前綴表示法、中綴表示法和後綴表示法等形式。日常使用的算術表達式是采用中綴表示法,即二元運算符位於兩個運算數中間。請設計程序將中綴表達式轉換為後綴表達式。 輸入格式: 輸入在一行中給出不含

習題3.9 堆棧操作合法性20 分浙大版《數據結構第2版》題目集

ram xxxxx text -html base logs main 格式 using 假設以S和X分別表示入棧和出棧操作。如果根據一個僅由S和X構成的序列,對一個空堆棧進行操作,相應操作均可行(如沒有出現刪除時棧空)且最後狀態也是棧空,則稱該序列是合法的堆棧操作

習題2.5 兩個有序鏈表序列的合並15 分浙大版《數據結構第2版》題目集

merge 其中 接口 cnblogs oid color 給定 style bsp 本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合並為一個非遞減的整數序列。 函數接口定義: List Merge( List L1, List L2 ); 其中Lis

習題2.2 數組循環左移20 分浙大版《數據結構第2版》題目集

problem [] 要求 top out 數據結構 允許 cal right 本題要求實現一個對數組進行循環左移的簡單函數:一個數組a中存有n(>0)個整數,在不允許使用另外數組的前提下,將每個整數循環向左移m(≥0)個位置,即將a中的數據由(a?0?