gfs:集群儲存海量資料,資料在節點間冗餘複製,即使一台儲存伺服器發生故障,也不會影響可用性。
gfs的缺點:適合儲存少許非常大的檔案,而不適合儲存大量小檔案,因為檔案的元資料資訊儲存在主節點的記憶體中,檔案越多主節點壓力越大。
bigtable:rdbms在大規模處理中有缺點,可以摒棄關係型的特點,採用簡單api進行crud,再加乙個掃瞄函式。
基本單位是column
多column組成row
若干列組成列族(column family)
乙個row有唯一rowkey
每個column有多個版本,每乙個單元格可以保留若干版本的資料
行序是按照字典順序進行排序的,row-10要小於row-2
每個列的時間戳有以下特性
webtable: 儲存從網際網路上抓取的網頁。行鍵是反轉的url比如org.hbase.www ,有乙個用於儲存html的列叫 contents,還有其他列族,比如 anchor,使用者儲存外向鏈結和入站鏈結,還有用於儲存元資料的列列族language。
content列族用多版本來儲存html,可以查詢到舊的html。例如幫助分析頁面變化頻率就可以把時間戳設定成抓取頁面的次數
hbase中擴充套件和負載均衡的基本單元成為region
系統支援單行事務,進一步實現單行鍵下儲存的資料的 讀-修改-寫(read-modify-write)序列
單元格的值可以當計數器用,並且支援原子更新,意味著這個計數器可以在乙個操作中實現讀寫,客戶端可以基於此實現乙個全域性強一致的計數器
協處理器(coprocessor): 可以在伺服器的位址空間執行來自客戶端的**。用於實現輕量級的批處理作業,或者使用表示式分析或者彙總資料
通過包裝器可以將表轉換成mapreduce的輸入輸出目標
資料儲存在 儲存檔案(store file)中,稱為hfile:
資料記錄到提交日誌(commit log),在hbase中稱之為 預寫日誌(write-ahead log, wal)(儲存在hdfs系統上)
資料寫入記憶體中的 memstore
寫入的資料超過閥值,系統將這部分資料移出記憶體,作為hfile寫入磁碟中
資料移出memstore,丟棄提交日誌。採用滾動memstore可以實現不阻塞系統讀寫,即用空的新memstore獲取更新資料,將舊的滿的memstore轉換成乙個檔案,由於memstore中的資料本來就排序好了,所以儲存的時候不用再次排序
當記錄被固化到hfile上之後,刪除鍵值對並不是直接刪除,而是做個刪除標記delete marker。
查詢結果是memstore+hfile的資料。
查詢的時候用不到wal,只有伺服器記憶體中的資料在伺服器崩潰前沒有寫入磁碟,而後進行恢復資料時才會用到wal。
hfile過多的時候有管家機制來處理,合併有兩種型別:
minor合併:多個小檔案合併成乙個大檔案,由於是多路歸併所以速度快
major壓縮合併:將region中乙個列族的若干個hfile重寫為乙個新hfile。合併掃瞄所有鍵值對,順序重寫所有資料,重寫資料的過程中會略過做了刪除標記的資料。斷言刪除此時生效。
master 負責負載均衡,將繁忙伺服器中的region移到負載輕的伺服器中
zookeeper是乙個可靠的,高可用的,持久化的分布式協調系統。
主伺服器主要負責用zookeeper為region伺服器分配region。
每台region伺服器在zookeeper中註冊乙個自己的臨時節點,主伺服器可以利用這些節點來跟蹤機器故障和網路分割槽。
hbase還可以利用zookeeper確保只有乙個主伺服器在執行。
主伺服器提供負載均衡和集群管理,將繁忙的伺服器中的region移到負載較輕的伺服器中。
主伺服器不為region伺服器或者客戶端提供任何的資料服務,是個輕量級伺服器。
容量大:hbase可以儲存海量資料:數十億行 x 數百萬列 x 數千個版本 = pb級儲存
稀疏性:在傳統關係型資料庫中,null值是要佔儲存空間的。而在hbase中,允許表在儲存時不儲存null值,所以不會佔儲存空間。
hadoop 權威指南 HBase
hbase原理 基本概念 基本架構 應用將資料儲存在帶標籤的表中,表的單元格是行和列座標的座標交集,他們有版本號。在預設情況下版本號是單元格插入時hbase自動分配的時間戳。表的單元格內容是乙個未解釋的位元組陣列 錶行的鍵也是位元組陣列。行鍵是表的主鍵,被用來對錶行進行排序。錶行的列分組,形成列族 ...
《HBase權威指南》讀書筆記1
關於排序 排列順序如果跟預期的不一樣,需要補鍵,比如 row 1 永遠小於 row 2,無論後面是什麼,將始終按照這個順序排列 這有可能影響到balance策略,假設你根據時間戳來做rowkey,那麼會出現最後乙個節點,資料不斷增加而前面的節點資料不變,這個過程會持續到達到rebalance的閥值,...
HBase權威指南,架構 儲存
hbase 主要處理兩種檔案 一種是預寫日誌 write ahead log,wal 另一種是實際的資料檔案。這兩種檔案主要由 hregionserver 管理。乙個基本的流程是客戶端首先聯絡 zookeeper 子集群 quorum 查詢行鍵,通過 zookeeper 獲取含有 root 的 re...