天天看點

大資料生态之HBase學習

大資料生态之HBase

    • HBase
      • 1.介紹
      • 2.hbase和Hadoop的差別
      • 3.hbase的存儲機制
    • HBase架構
    • HBase安裝
      • 單機模式
      • 僞分布式
      • 完全分布式

HBase

1.介紹

是分布式面向列的資料庫,建構在Hadoop之上,類似goole的big table技術,
	對海量結構化資料的快速随機通路,提供實時讀寫
	是Hadoop生态系統的一部分
           

2.hbase和Hadoop的差別

hdfs								hbase
	a.分布式檔案系統,存儲大量資料			資料庫,建構于hdfs之上
	b.不支援快速單個記錄查找				支援大表的快速查找
	c.提供高延遲的批處理					提供了單行記錄低延遲的随機通路(10億級别)
	d.隻提供資料按序通路					内部使用hash表提供的随機通路。在hdfs上存放索引檔案,用于快速查找
           

3.hbase的存儲機制

1).面向列族(一組列)的資料庫,适用于海量資料的随機讀寫
	2).table隻定義了列族,表是按照行存儲
	3).術語
		table								:表,是行的集合
		row									:行是列族的集合
		column								:列族,是列的集合
		column family						:列,是KV鍵值對的集合
	4).面向行和面向列的差別
		行row								列column
		a).适合于OLTP(線上事務處理)			适合于OLAP(線上分析處理)
		b).針對行列較少的						适用于大表
	5).hbase和RDBMS差別
			hbase							RDBMS
		a.是無模式的,沒有列的定義					有模式的,描述整個table結構
		  隻定義列族,列是key
		b.适合于寬表,水準可伸縮					适合于小表,難于擴充
		c.沒有事務支援							事務性的
		d.不是規範化的							規範化的
		e.結構化和半結構化						完全結構化
           

HBase架構

1.master-slave主從結構

2.table從豎直方向進行切割,分成若幹個區域,由每個region server進行處理

3.master server(ms)
	a.負責指派region給RS。通過zk獲得task的幫助
	b.處理跨RS的region的負載均衡問題。
	c.從繁忙伺服器到空閑伺服器之間的資料轉載。
	d.通過裁定負載均衡判斷叢集的狀态。
	
4.region
	被切割的表,跨RS

5.region server(rs)
	和client通信
	處理資料操作
	處理下面所有的region的讀寫請求
	通過閥值決定region size
           

HBase安裝

先配置ssh ,下載下傳安裝Java 、Hadoop。
           

1.下載下傳HBase

2.配置環境變量和Java

# tar開
tar -zxvf hbase-2.2.0-bin.tar.gz -C /usr/local/src/
# 建立軟連接配接
ln -s hbase-2.2.0/ hbase
# 配置 環境變量
vim /etc/profile.d/hbase.sh

export HBASE_HOME=/usr/local/src/hbase
export PATH=$PATH:$HBASE_HOME/bin


# 使配置檔案生效 輸出測試
source /etc/profile.d/hbase.sh
echo $HBASE_HOME
/usr/local/src/hbase

cd $HBASE_HOME/conf/
vim hbase-env.sh

export JAVA_HOME=/usr/local/jdk
           

單機模式

所有的hbase程序和zk都運作在同一個JVM中
           
vim $HBASE_HOME/conf/hbase-site.xml

<property>
	<name>hbase.rootdir</name>
	<value>file:///root/hbase/root</value>
</property>
<property>
	<name>hbase.zookeeper.property.dataDir</name>
	<value>file:///root/hbase/zk</value>
</property>
           

僞分布式

vim $HBASE_HOME/conf/hbase-site.xml

<property>
	<name>hbase.rootdir</name>
	<value>hdfs://s1:9000/hbase</value>
</property>
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
           

完全分布式

vim $HBASE_HOME/conf/hbase-site.xml

<property>
	<name>hbase.rootdir</name>
    <value>hdfs://s1:9000/hbase</value>
</property>
<property>
	<name>hbase.zookeeper.quorum</name>
	<value>s1,s2,s3</value>
</property>
<property>
	<name>hbase.cluster.distributed</name>
	<value>true</value>
</property>
<property>
	<name>hbase.master.info.port</name>
	<value>60010</value>
</property>


# 配置region server 類似Hadoop中的slave配置檔案
vim regionservers
s1
s2
s3

# jps指令檢視
[[email protected] conf]# xcall jps
3154 NodeManager
2739 DataNode
2485 QuorumPeerMain
3767 HMaster
3994 Jps
2620 NameNode
3052 ResourceManager
3885 HRegionServer
2959 DFSZKFailoverController
-------- s2 --------
1569 NameNode
1496 QuorumPeerMain
1659 DataNode
2253 Jps
1759 DFSZKFailoverController
1839 NodeManager
2111 HRegionServer
-------- s3 --------
1872 HRegionServer
1426 QuorumPeerMain
1493 DataNode
2012 Jps
1598 NodeManager

           
主節點(s1):
	HMaster
	HRegionServer
s2:
	HRegionServer
s3:
	HRegionServer
           

啟動成功!!!

浏覽器輸入:http://192.168.159.150:60010/master-status

檢視

大資料生态之HBase學習

同時檢視Hadoop:http://192.168.159.150:50070

大資料生态之HBase學習
hbase shell
# 進入hbase shell
           
# 建立表
create "stu","lie"
# 檢視表
list
# 檢視結構(描述)
describe "stu"
# 插入資料
put "stu","1","lie:name","xiaoming"
# 檢視資料是否插入成功
scan "stu"
# 退出
exit
           

繼續閱讀