配置Hbase將數(shù)據(jù)寫到哪個目錄下,則我們?nèi)ヅ渲胔base.rootdir
??? hbase.rootdir默認情況下是指向tmp/hbase-${user.name}下的,在重啟時會丟失數(shù)據(jù)
??? hbase配置的數(shù)據(jù)路徑是在hadoop集群上的
配置java
??? 在conf/hbase-env.sh,將其中的JAVA_HOME指向到你Java的安裝目錄。
ssh
??? 必須安裝ssh,ssh之間必須都打通,不用密碼都可登錄,(ssh passwordless login)
hadoop
??? Hbase運行在實現(xiàn)了持久化同步的HDFS上,否則將丟失所有的數(shù)據(jù)
??? sync必須顯示開啟(即dfs.support.append同時在客戶端和服務(wù)器端設(shè)為真)
??????? 客戶端:hbase-site.xml
??????? 服務(wù)器端:hdfs-site.xml
??????? 修改后必須重新重啟集群
??? 因為Hbase建立在Hadoop上,Hadoop使用的hadoop.jar和Hbase使用的必須一致,所以需要將Hbase lib目錄下的hadoop.jar替換為Hadoop里面的那個,防止版本沖突
hbase也有一個界面,上面會列出重要的屬性,默認是在Masters的60010端口上的,[最新的版本端口號為16010]
zookeeper
??? 一個分布式運行的Hbase依賴一個zookeeper集群,所有的節(jié)點和客戶端都必須能夠訪問zookeeper
??? 默認的情況下,Hbase會管理一個zookeeper集群。
??? 需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK來切換,這個值默認是true,作用是讓Hbase啟動的時候同時也啟動zookeeper.
Region
??? region是部分數(shù)據(jù),但region包括完整的行,所以region是單位表的一個子集
??? region有三個主要要素:
??????? 它所屬于哪張表
??????? 它所包含的第一行
??????? 它所包含的最后一行
??? 當(dāng)表初寫數(shù)據(jù)時,此時表只有一個region,當(dāng)隨著數(shù)據(jù)的增多,region開始變大,等到它達到限定的閥值大小時,變化把region分裂為兩個大小基本相同的region
Column Family?
??? Hbase是column family一些列的集合,一個column family所有成員是有著相同的前綴
??? 在物理上,一個column family成員在文件系統(tǒng)上都是存儲在一起,因為存儲優(yōu)化都是針對coLumn family級別的,這就意味著,一個Column family的所有成員是用相同的方式訪問的。
Cells
???? A{row,column,version}元組就是一個Hbase中的一個cell.
數(shù)據(jù)模型操作
???? 四種主要的數(shù)據(jù)操作模型是get,put,scan,delete
版本
???? 在Hbase中,版本是按照倒序排列的,因此當(dāng)讀取這個文件的時候,最先找到的是最近的版本