1. HBase是什么
1.1 HBase的概念
- HBase基于Google的BigTable論文,是建立的==HDFS==之上,提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的分布式數(shù)據(jù)庫系統(tǒng)。
- 在需要==實時讀寫隨機訪問==超大規(guī)模數(shù)據(jù)集時,可以使用HBase。
1.2 HBase的特點
- ==海量存儲==
- ==列式存儲==
- HBase表的數(shù)據(jù)是基于列族進行存儲的,列族是在列的方向上的劃分。
- ==極易擴展==
- 底層依賴HDFS,當磁盤空間不足的時候,只需要動態(tài)增加datanode節(jié)點就可以了
- 可以通過增加服務(wù)器來對集群的存儲進行擴容
- ==高并發(fā)==
- ==稀疏==
- 稀疏主要是針對HBase列的靈活性,在列族中,你可以指定任意多的列,在列數(shù)據(jù)為空的情況下,是不會占用存儲空間的。
- ==數(shù)據(jù)的多版本==
- HBase表中的數(shù)據(jù)可以有多個版本值,默認情況下是根據(jù)版本號去區(qū)分,版本號就是插入數(shù)據(jù)的時間戳
- ==數(shù)據(jù)類型單一==
- 所有的數(shù)據(jù)在HBase中是以==字節(jié)數(shù)組==進行存儲
2、Hbase整天架構(gòu)
創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護、成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、
外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站備案、服務(wù)器租用、
主機域名、軟件開發(fā)、微信小程序等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站歡迎咨詢:18982081108
2.1 Client客戶端
- Client是操作HBase集群的入口
- 對于管理類的操作,如表的增、刪、改操縱,Client通過RPC與HMaster通信完成
- 對于表數(shù)據(jù)的讀寫操作,Client通過RPC與RegionServer交互,讀寫數(shù)據(jù)
- Client類型:
- HBase shell
- Java編程接口
- Thrift、Avro、Rest等等
2.2 ZooKeeper集群
2.3 HMaster
- HBase集群也是主從架構(gòu),HMaster是主的角色,是老大
- 主要負責Table表和Region的相關(guān)管理工作:
- 關(guān)于Table
- 管理Client對Table的增刪改的操作
- 關(guān)于Region
- 在Region分裂后,負責新Region分配到指定的HRegionServer上
- 管理HRegionServer間的負載均衡,遷移region分布
- 當HRegionServer宕機后,負責其上的region的遷移
2.4 HRegionServer
- HBase集群中從的角色
作用
- 響應(yīng)客戶端的讀寫數(shù)據(jù)請求
- 負責管理一系列的Region
- 切分在運行過程中變大的region
2.5 Region
- HBase集群中分布式存儲的最小單元
- 一個Region對應(yīng)一個Table表的部分數(shù)據(jù)
3、HBase數(shù)據(jù)模型
3.1 rowkey行鍵
- table的主鍵,table中的記錄按照rowkey 的字典序進行排序
- Row key行鍵可以是任意字符串(大長度是 64KB,實際應(yīng)用中長度一般為 10-100bytes)
3.2 Column Family列族
- 列族或列簇
- HBase表中的每個列,都歸屬與某個列族
- 列族是表的schema的一部分(而列不是),即建表時至少指定一個列族
- 比如創(chuàng)建一張表,名為
user
,有兩個列族,分別是info
和data
,建表語句create 'user', 'info', 'data'
3.3 Column列
- 列肯定是表的某一列族下的一個列,用
列族名:列名
表示,如info
列族下的name
列,表示為info:name
- 屬于某一個ColumnFamily,類似于我們mysql當中創(chuàng)建的具體的列
3.4 cell單元格
- 指定row key行鍵、列族、列,可以確定的一個cell單元格
- cell中的數(shù)據(jù)是沒有類型的,全部是以字節(jié)數(shù)組進行存儲
3.5 Timestamp時間戳
- 可以對表中的Cell多次賦值,每次賦值操作時的時間戳timestamp,可看成Cell值的版本號version number
- 即一個Cell可以有多個版本的值
4、HBase安裝部署
4.1、下載安裝包
下載地址:https://archive.apache.org/dist/hbase/1.2.1/
4.2、安裝Hbase
解壓到安裝目錄: tar -zxcf habse-1.2.1-bin.tar.gz -C /opt/bigdata2.7
重命名解壓目錄:mv hbase-1.2.1 hbase
4.3、修改配置文件
1、需要把hadoop中的配置文件core-site.xml,hdfs-site.xml拷貝到hbase安裝目錄下的conf文件夾中
2、修改conf目錄下的配置文件
(1)修改hbase-env.sh
#添加java環(huán)境變量
export JAVA_HOME=/kkb/install/jdk1.8.0_141
export HBASE_MANAGES_ZK=false`
(2)修改 hbase-site.xml
hbase.rootdir
hdfs://node01:8020/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
node01:2181,node02:2181,node03:2181
(3)修改regionservers
vim regionservers
node02
node03
(4)修改backup-masters'
node2
3、配置hbase的環(huán)境變量
vi /etc/profile
export HBASE_HOME=/opt/bigdata2.7/hbase
export PATH=$PATH:$HBASE_HOME/bin
4.4、分發(fā)hbase目錄到其他節(jié)點
進入habase目錄:cd /opt/bigdata2.7
scp -r hbase node2:/opt/bigdata2.7
scp -r hbase node3:/opt/bigdata2.7
scp /etc/profile node2:/etc
scp /etc/profile mpde3:/etc
4.5、讓所有的節(jié)點hbase環(huán)境變量生效
在所有節(jié)點執(zhí)行:
source /etc/profile
5、Hbase集群啟動和停止
(1)啟動
前提條件:先啟動hadoop集群和zookeeper集群
啟動hbase
start-hbase.sh
(2)停止
stop-hbase.sh
profile mpde3:/etc`
4.5、讓所有的節(jié)點hbase環(huán)境變量生效
在所有節(jié)點執(zhí)行:
source /etc/profile
5、Hbase集群啟動和停止
(1)啟動
前提條件:先啟動hadoop集群和zookeeper集群
啟動hbase
start-hbase.sh
(2)停止
stop-hbase.sh
當前題目:Hbase原理架構(gòu)與安裝部署教程-創(chuàng)新互聯(lián)
本文地址:
http://weahome.cn/article/dghgpo.html