1、HBase簡介
HBase是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建大規模結構化的存儲集群。HBase的目標是存儲并處理大型數據,具體來說是僅需使用普通的硬件配置,就能夠處理由成千上萬的行和列所組成的大型數據。
與MapReduce的離線批處理計算框架不同,HBase是一個可以隨機訪問的存儲和檢索數據平臺,彌補了HDFS不能隨機訪問數據的缺陷,適合實時性要求不是非常高的業務場景。HBase存儲的都是Byte數組,它不介意數據類型,允許動態、靈活的數據模型。
2、HBase安裝(centos系統、hbase1.1.3)
一.下載并解壓包
Cd /opt
Wget http://hbase.apache.org/tar?-xvf hbase-1.1.3-bin.tar.gz
二.配置1.7 jdk及環境變量
Export JAVA_HOME=/opt/jdk1.7
Export PATH=$JAVA_HOME/bin:$PATH
三.單機啟動hbase
sh hbase-daemon.sh start master
./hbase shell
四.創建數據庫(鏈接參考https://blog.csdn.net/scutshuxue/article/details/6988348)
?
創建表create ‘數據庫名’,’列名’
插入數據put ‘數據庫名’,’行名’,‘列名’,’值’
list ‘數據庫名’
五.配置web
vi /etc/hbase1.1.3/conf/hbase-site.xml???? 在configure里面添加如下配置
<property>
<name>hbase.master.info.port</name>
<value>8080</value>
</property>
登錄localhost:8080
3、HBase使用
下面我們看看HBase Shell的一些基本操作命令,我列出了幾個常用的HBase Shell命令,如下:
名稱命令表達式
創建表create '表名稱', '列名稱1','列名稱2','列名稱N'
添加記錄??? ??put '表名稱', '行名稱', '列名稱:', '值'
查看記錄get '表名稱', '行名稱'
查看表中的記錄總數count? '表名稱'
刪除記錄delete? '表名' ,'行名稱' , '列名稱'
刪除一張表先要屏蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步? drop '表名稱'
查看所有記錄scan "表名稱"??
查看某個表某個列中所有數據scan "表名稱" , ['列名稱:']
更新記錄?就是重寫一遍進行覆蓋
1.創建一個表
hbase(main):011:0>create 'member','member_id','info:age',?'name'?,'class','city','area'??
2.列舉表
hbase(main):012:0>list
3、描述表結構
hbase(main):006:0>describe 'member'
4、插入數據,hbase每次put只能插入一行數據,如果想插入多行數據,需要執行多次put命令
put 'member','1','info:age','24'
?put?'student','1','name','wang'??
put?'student','1',':class','1'??
put?'student','1','city','zhangzhou'?
put?'student','1','area','High-tech zone'
5、獲取記錄
get 'student' ,'1'
6、刪除操作
delete?'student','1','name'
7、刪除表
hbase(main):029:0>disable 'student'?? #
hbase(main):030:0>drop 'student'
8、權限管理
1)分配權限
# 語法 : grant <user> <permissions> <table> <column family> <column qualifier> 參數后面用逗號分隔?
# 權限用五個字母表示: "RWXCA".?
# READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')?
# 例如,給用戶‘test'分配對表t1有讀寫的權限,?
hbase(main)> grant 'test'?,?'RW'?,?'t1'?
2)查看權限
# 語法:user_permission <table>?
# 例如,查看表t1的權限列表?
hbase(main)> user_permission 't1'
3)收回權限
# 與分配權限類似,語法:revoke <user> <table> <column family> <column qualifier>?
# 例如,收回test用戶在表t1上的權限?
hbase(main)> revoke 'test'?,?'t1'?
9、刪除表中的所有數據
# 語法: truncate <table>?
# 其具體過程是:disable table -> drop table -> create table?
# 例如:刪除表t1的所有數據?
hbase(main)> truncate 't1'?