好程式設計師大資料學習路線Hbase總結
好程式設計師大資料學習路線Hbase 總結 , 為什麼有 hbase
隨著資料的逐漸增大,傳統的關係型資料庫無法滿足 對資料的查詢和儲存,而 hive 不是資料庫,只是資料倉儲,雖然能夠滿足簡單的儲存要求,但是 始終無法滿足對非結構化和半結構化的資料的儲存和查詢
2hbase 是什麼
Hbase 是阿帕奇旗下的一款開源的,多版本的,可擴充套件的非關係型資料庫。
他是基於谷歌的 bigtable 的基礎上,建立在 hdfs 上的一款提供高 可靠性的,高效能的列式儲存,可伸縮,實時讀寫的nosql的資料庫系統
3 適用場景
海量資料儲存
隨機實時讀寫和管理資料
4 特點
列式儲存
模式:無模式(不需要 use gp1808, 就可以直接建立表了 , 所以導致 hbase 中的表是不可以重名的)
資料型別:單一的 byte[]
多版本( version ):每個值都可以有多個版本
稀疏儲存:如果 kv 為 null ,則不佔用儲存空間
5 結構框架
Client :
hbase 的客戶端,包含訪問的 hbase 的介面( linux shell ,java api )
維護一些 cache( 快取 ) 來加速 hbase 的速度,比如 region 的位置資訊
Zookeeper:
監控 hmaster 的狀態,保證有且只有一個 active 的 hmaster ,達到高可用
儲存所有的 region的定址入口,
實時監控 hregionserver 的狀態,將 regionserrver 的上下線資訊實時通知給 hmaster
儲存 hbase 的所有表的資訊 ( hbase 的後設資料)
Hmster(hbase 的老大 )
為 regionserver 分配 region(新建表)
負責 regionserver 的 負載均衡
負責 region 的重新分配(處理 hregionserver 異常, hregion 裂變)
Hdfs 上的垃圾檔案回收
處理 schema 的更新請求
Hregionserver ( hbase 的小弟)
維護老大給他的 region( 管理本機上的 region)
處理 client 對 region 的 IO 請求,並和 hdfs 互動
Regionserver 負責切分在執行過程中變大的 region
Hregion:
Hbase 中分散式的儲存和負載的最小單元,表或者是表的一部分
( 在 HBase 中資料按主鍵排序,同時表按主鍵劃分為多個 Region
Region 按大小分割的,隨著資料增多, Region 不斷增大,當增大到一個閥值的 Region 就會分成兩個新的 Region )
Region 雖然是分散式儲存的最小單元,但並不是儲存的最小單元。每個 Region 包含著多個 Store 物件。每個 Store 包含一個 MemStore 或若干 StoreFile , StoreFile 包含一個或多個 HFile 。 MemStore 存放在記憶體中, StoreFile 儲存在 HDFS 上。
Hlog ;
對 hbase 的操作進行記錄,使用 wal ( Write-Ahead-Log )寫資料,優先寫入 log, 然後再寫入 memstore, 以防資料丟失時可以進行日誌回滾回複資料
Store :
相當於一個列簇。
Memstore:128M
記憶體緩衝區,用於將資料批次重新整理到 hdfs 上
Hstorefile(hfile)
Hbase 中的資料是以 hfile 的形式儲存到 hdfs 上
寫流程:
1client 透過 zookeeper 的排程,向 regionserver 發出寫資料請求,在 region 中寫資料
2 資料被寫入 region 的 memstore ,直達 memstore 達到預設的閾值( 128M )
3memstore 中的資料被 flush 成一個 storefile
4 隨著 storefile 檔案的不斷增多,當其數量增長到一定閾值的時候,觸發了 compact 合併操作,將多個 storefile 合併成一個 storefile, 同時進行版本合併和資料刪除
5storefiles 透過不斷的 compact 合併操作,逐漸形成越來越大的 storefile
6 單個 storefile 大小超過一定閾值之後,觸發 spilt 操作,把當前的 region 切分成 2 個新的 region ,父 region 會下線,新切出的 2 個字 region 會被 hmaster 分配到相應的 regionserver 上,使得原先的一個 region 的壓力的以分配到 2 個 region 上
讀流程:
1client 訪問 zookeeper ,查詢 root 表,獲取 meta 表的資訊
2 從 meta 表中查詢,獲取存放的目標的 region 資訊,從而找到對應的 regionserver
3 透過 regionserver 獲取需要查詢的資料
4regionserver 的記憶體分為 memstore 和 blockcache 兩部分, memstore 主要用於寫資料, blockcache 主要用於讀資料,請求先到 memstore 中查資料,查不到就在 blockcache 在查,再查不到就會到 storefile 上讀,並把讀的結果放入 blockcache
定址過程: client-->Zookeeper-->-ROOT- 表 -->.META. 表 -->RegionServer-->Region-->client
Rowkey :行鍵,和 mysql 的主鍵一樣,不允許重複,按照字典順序排列
Columnfamily :列簇
Column :列
Timestamp: 時間戳,預設顯示最新的時間戳
Version :版本號,記錄資料的版本
Cell: 單元格,一個 key 一個 value
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2653561/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全流程總結程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師大資料學習路線之大資料自學路線二程式設計師大資料
- 好程式設計師大資料學習路線之大資料自學路線一程式設計師大資料
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料學習路線分享Map學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料學習路線之zookeeper乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享AWK詳解程式設計師大資料
- 好程式設計師大資料紀實:HBase知識點集中總結程式設計師大資料
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享大資料之執行緒程式設計師大資料執行緒
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料學習路線hive內部函式程式設計師大資料Hive函式
- 好程式設計師大資料學習路線之hive儲存格式程式設計師大資料Hive
- 好程式設計師大資料學習路線分享TCP和UDP學習筆記程式設計師大資料TCPUDP筆記
- 好程式設計師大資料學習路線分享大資料之基礎語法程式設計師大資料
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師大資料學習路線分享hive的執行方式程式設計師大資料Hive
- 好程式設計師大資料學習路線之hive表的查詢程式設計師大資料Hive
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全過程解析程式設計師大資料
- 好程式設計師大資料學習路線分享執行緒學習筆記二程式設計師大資料執行緒筆記
- 好程式設計師大資料學習路線分享多執行緒學習筆記程式設計師大資料執行緒筆記