1. 程式人生 > >HBase基礎概念

HBase基礎概念

root rest api failover 全表掃描 足夠 大數 很慢 name 默認

定義

非關系型分布式列式數據庫,支持大數據量查詢(百萬,上億行)

概要

  • 數據存儲:HDFS
  • 數據計算:MapReduce/Spark
  • 服務協調:Zookeeper

特征

  • 列式存儲(列只有一種類型byte[])
  • 分布式
  • 大數據存儲(百萬,上億行; 上萬列)
  • 伸縮性,擴展性(列根據業務隨意添加)
  • 隨機快速訪問:歸功於region分區
  • 強一致性(同一行的數據分布在同一個region)
  • 自動分片(當storeFile達到閥值值,自動把一個region分裂成兩個,同時刷新hbase:meta表,以更新region信息)
  • regionserver自動故障轉移(failover):當一個regionserver進程掛掉時,Master會自動將原先regionserver
    下的reigon進行重新分配到其它regionserver
  • 支持mapreduce,hdfs: 數據導入,數據存儲
  • java api
  • thrift/rest api
  • block cache
  • web ui

不適用場景

  • 關聯
  • 事務
  • 列類型設置
  • 二級索引
  • 高級查詢(存儲過程,觸發器等)

什麽時候選用HBase

結合二三即可

  • 大數據
  • 能夠承受丟失RDBMS的特征
  • 有足夠的硬件資源

HBase與HDFS的區別

雖然HBase數據存儲在HDFS上,但查詢數據的速度區別很大

  • HDFS:屬於全表掃描查詢,速度很慢
  • HBase:根據rowKey分區,只選擇部分相應的region查詢,速度很快

HBase系統表

1.也叫目錄表(hbase:meta): 用於保存所有region信息

2.存放在zookeeper中,默認路徑是 /hbase/meta-region-server (終端執行zkCli.sh)

3.存放目錄由hbase-site.xml中zookeeper.znode.rootserver控制

Master節點

由於meta數據不是存儲在master節點,故當master掛掉時,hbase client can still run for a short time.

  • 運行在namenode
  • 管理regionserver
  • 觸發meta表的更新

WAL(Write Ahead Log)

數據先已文件形式寫入HLog,再寫入memstore

RegionServer

管理region,部署在DataNode上

HBase基礎概念