HBase基礎和偽分布式安裝配置


一、HBase(NoSQL)的數據模型

1.1 表(table),是存儲管理數據的。

1.2 行鍵(row key),類似於MySQL中的主鍵,行鍵是HBase表天然自帶的,創建表時不需要指定

1.3 列族(column family),列的集合。

一張表中有多個行健,一個行健讀取出來的是一條記錄,列族和MySQL中的列差不多,但是它是列的集合

HBase中列族是需要在定義表時指定的,列是在插入記錄時動態增加的。

HBase表中的數據存儲在本地磁盤上的時候,每個列族單獨一個作為文件存儲。


上圖表示HBase中表的一行

和關系型數據庫不同的是

關系型數據庫一行中每一個列的值只能是一個,如:

UserId UserName

1 JChubby

而在NoSql中,一行里面某一個列的值可能是多個的,如上圖,或者:

UserId UserName

1 JChubby

Looky

其中省略了timestamp時間戳這一列,但是在NoSql中讀取這一行數據的出來時,數據應該是和關系型數據庫讀出來的是差不多的

時間戳列起到了標識列數據版本的作用,當沒有指定時間戳的時候默認取的是最新的列數據,具體請參照上圖

1.4 存儲的數據都是字節數組。



二、HBase的物理模型

2.1 HBase是適合海量數據(如20PB)的秒級簡單查詢的數據庫。

2.2 HBase表中的記錄,按照行鍵進行拆分, 拆分成一個個的region。

如:在一個有1W行健的表中,每2K個行健拆分成一個region分別存儲在不同的節點中,每個region記錄着行健的起始位置和最終位置[startkey,endkey]

許多個region存儲在region server(單獨的物理機器)中的。

這樣,對表的操作轉化為對多台region server的並行查詢。

HBase中有兩種特殊的表,分別是-ROOT和.META

.META中記錄着各個region的起止行健,當.META中的記錄很大時,又會按照相同的規則拆分成不同的region記錄中-ROOT表中


如上圖所示,當要查詢數據時,先找-ROOT表中記錄的region信息,找到對應的.META表中的region,在到實際的節點上的region查詢數據



三、HBase的體系結構

3.1 HBase是主從式結構,HMaster、HRegionServer


四、HBase偽分布安裝

HBase的安裝是是建立在hadoop和zookeeper集群之上的

安裝時確保hadoop和zookeeper集群已安裝成功並啟動

4.1 解壓縮、重命名、設置環境變量

把hbase-0.94.2-security.tar.gz復制到/home/hadoop

解壓hbase-0.94.2-security.tar.gz與重命名

#cd /home/hadoop

#tar -zxvf hbase-0.94.2-security.tar.gz

#mv hbase-0.94.2-security hbase

修改/etc/profile文件。

#vi /etc/profile

增加 

export HBASE_HOME=/home/hadoop/hbase

修改 

export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin

保存退出

#source /etc/profile

4.2 修改$HBASE_HOME/conf/hbase-env.sh,修改內容如下:

export JAVA_HOME=/usr/java/jdk1.6.0_45

export HBASE_MANAGES_ZK=true

第一個配置java環境變量

第二個配置在本機器上的HBase可以自己啟動zookeeper和使用

4.2 修改$HBASE_HOME/conf/hbase-site.xml,修改內容如下:

<property>

 <name>hbase.rootdir</name>

 <value>hdfs://master:9000/hbase</value>

</property>

<property>

 <name>hbase.cluster.distributed</name>

 <value>true</value>

</property>

<property>

 <name>hbase.zookeeper.quorum</name>

 <value>master</value>

</property>

<property>

 <name>dfs.replication</name>

 <value>1</value>

</property>

hbase.rootdir配置在hdfs文件系統上hbase存儲的路徑

hbase.cluster.distributed配置是否是分布式的

hbase.zookeeper.quorum配置zookeeper在哪個節點上

dfs.replication配置副本個數

注意:hbase.rootdir的主機和端口號與hadoop的配置文件core-site.xml的fs.default.name的主機和端口號一致

4.3 (可選)文件regionservers的內容為master,該文件記錄regionserver的各個節點的主機名,因為是偽分布式安裝,所只寫一個,localhost或者主機名都可以

4.4 啟動hbase,在bin目錄下執行命令start-hbase.sh

******啟動hbase之前,確保hadoop是運行正常的,並且可以寫入文件*******

4.5 驗證是否安裝成功:

(1)執行jps,發現新增加了3個java進程,分別是HMaster、HRegionServer、HQuorumPeer

(2)使用瀏覽器訪問http://master:60010,可以進入和hadoop類似的web管理頁面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM