標籤:sql hba 就是 inf 環境 region 系統 輸入 客戶
歡迎關注大資料和人工智慧技術文章發布的公眾號:清研學堂,在這裡你可以學到夜白(作者筆名)精心整理的筆記,讓我們每天進步一點點,讓優秀成為一種習慣!
一、HBase基本概念:列式資料庫
在Hadoop生態體繫結構中,HBase位於HDFS(HadoopDistributed File System)的上一層,不依賴於MapReduce,那麼如果沒有HBase這種Nosql資料庫會有什麼影響呢?傳統的關係型資料庫由於儲存資料有限,且其分布式結構由於本身的特點導致節點數量最大不會超過一百個,例如分布式的oracle資料庫只能部署一百個節點等等。那麼在當下海量資料的背景下則誕生了列式資料庫,而最常見的列式資料庫有兩種:1、HBase 2、Cassandra。列式資料庫,顧名思義是按列來儲存資料,意思是HBase表中的欄位是可以動態增加的,因此HBase資料庫是Nosql資料庫。
二、HBase與HDFS、Hive/Pig之間的關係:
由於HDFS作為Distributed File System,主要用於儲存資料,因此它不支援即時訪問/隨機讀寫,而HBase資料庫支援實施訪問/隨機讀寫,因此HBase主要應用於線上資料查詢,HDFS主要應用於資料存放區,而Hive/Pig作為資料分析引擎,由於底層依賴MapReduce,具有高延遲的特點,因此主要應用於離線資料查詢。
三、HBase表的基礎知識:
1、表:表是用來儲存和管理資料的,表由行和列組成。
2、行鍵:英文rowkey,不唯一且不為空白,作為HBase表的一級索引,特點:相同行鍵作為一條記錄,行鍵按照字典順序排序。
3、列族:列的集合,列族是在建立表時定義好的,例:create ‘students‘,‘info‘,‘grade‘,其中info和grade就是兩個列族,而students是這張表的名字,列是在添加記錄時動態添加的。
4、時間戳記:列的一個屬性。
5、儲存格:可以儲存多個資料,每個資料具有時間戳記屬性和版本特性(通過時間戳記區分資料),這是Hbase表結構專屬的特點,而在關係型資料庫中,儲存格只能儲存一個資料。
6、HBase表中的記錄按行鍵拆分形成region,一個行鍵就是一個region,不同的region分布在不同的regionserver上,對錶的查詢轉換為對多台regionserver的並行查詢,通過犧牲儲存空間來換取時間效能, 因此Hbase適合海量資料秒級簡單查詢。
7、region由多個store組成,每個store儲存一個列族,store由一個memstore和零到多個storefile組成,memstore儲存最近一批資料的更新操作,在HBase寫資料的過程中,就是將資料寫入memstore中。
(region是分布式儲存和負載平衡的最小單元,Hfile是儲存的最小單元)
四、Hbase表:
五、Hbase表的特點:
1、大:一張表可以由上億行,上百萬列組成。
2、面向列:HBase表按列儲存資料。
3、稀疏:HBase表的空列不佔用儲存空間。
4、無模式:HBase表中不同行可以有截然不同的列,因為列是在添加記錄時動態添加的。
5、資料類型單一:只有字串這種資料類型。
六、HBase的體繫結構:
Hmaster:1、為Regionserver分配region。
2、負責Regionserver的負載平衡。
3、發現失效的Regionserver並重新分配其上的region。
4、接收用戶端的請求:對HBase表進行增刪改查操作。
Regionserver:1、維護region,處理用戶端對region的IO請求。
2、負責切分過大的region。
3、定期向Zookeeper彙報心跳資訊。
Zookeeper:1、儲存HBase叢集的結構資訊、root表、meta表。
2、即時監控Regionserver並通知給Hmaster。
3、實現HBase的HA功能
(HBase內建一個Zookeeper)
七、安裝和配置HBase:
1、安裝:tar -zxvf hbase-1.3.1-bin.tar.gz -C ~/training
2、配置HBASE_HOME環境變數:export HBASE_HOME=/root/training/hbase-1.3.1
export PATH=$HBASE_HOME/bin:$PATH
八、HBase的安裝模式:與Hadoop相似
1、本地模式:單機沒有虛擬出任何節點,只有Hmaster,沒有Regionserver,資料存放在本地,修改兩個設定檔:hbase-env.sh和hbase-site.xml。
2、偽分布式模式:單機虛擬出多個節點,具備HBase的所有功能,修改兩個設定檔:hbase-env.sh和hbase-site.xml。
3、全分布式模式:至少三台機器以上,修改三個設定檔:hbase-env.sh、hbase-site.xml和regionservers。
(比偽分布式模式多一個regionservers)
補充:HBase的http服務連接埠:16010
九、HBase的讀寫過程:
1、寫過程:HBase表中的記錄按行鍵拆分形成region,不同的region分布在不同的regionserver上,region由多個store組成,每個store儲存一個列族,而store又由一個memstore和零到多個storefile組成,資料寫入memstore中,memstore儲存最近一批資料的更新操作,當memstore儲存不下時(128M),會溢寫到磁碟中形成storefile檔案,當storefile檔案數量達到一定閾值時會合并成一個storefile檔案,當storefile檔案大小大於256M時,region會自動分裂,由Hmaster分配到其他regionserver上,最終storefile檔案產生128M的Hfile檔案儲存到datanode上。
2、讀過程:用戶端向Hmaster發送請求,從zookeeper中訪問root表(-root-)獲得表的元資訊,訪問meta表(.meta.)獲得region的元資訊,進入region從memstore中尋找資料,如果找不到,則從storefile中尋找資料。
(一句話總結HBase的讀寫過程:定址訪問zookeeper,資料讀寫範文Regionserver)
十、HBase上的過濾器:實現複雜查詢
十一、HBase上的MapReduce:map的輸入是HBase中的一條記錄,reduce的輸出是HBase中的一條記錄。
十二、HBase的HA:單獨啟動一個Hmaster:hbase-daemon.sh start master。
李金澤AllenLi,清華大學在讀碩士,研究方向:大資料和人工智慧。
一文讓您全面瞭解清楚HBase資料庫的所有知識點,值得收藏!