1. 程式人生 > >Hbase的安裝部署及基本語法

Hbase的安裝部署及基本語法

Hbase的安裝部署

1、前提條件

  1hadoop環境 啟動相關的Hadoop程序

2)zookeeper環境 啟動zookeeper

2、安裝Hbase

解壓tar -zxf  hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/modules/cdh

##配置hbase-env.sh

export HBASE_MANAGES_ZK=false      //124

export JAVA_HOME=/opt/modules/jdk1.7.0_67    //29

##配置hbase-site.xml

<property>

<name>hbase.rootdir</name>

<value>hdfs://[hostname]:8020/hbase</value>

</property>

<property>

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

<value>true</value>

</property>

<property>

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

<value>[hostname]</value>

</property>

#### regionservers檔案配置

[hostname]

3、啟動Hbase

         ${HOME_Hbase}目錄下:

方式一:單獨啟動

bin/hbase-daemon.sh start master

bin/hbase-daemon.sh start regionserver

方式二:同時啟動

bin/start-hbase.sh

停止時將start對應修改為stop即可

解決hbase shell中無法退格的問題:

xshell

檔案-屬性-終端-鍵盤-兩個都選擇ASCII 127

CRT

選項-會話選項-模擬-終端-選擇linux

選項-會話選項-對映鍵

--勾選上

基本語法

${HOME_Hbase}目錄下:

$ bin/hbase version      //檢視hbase的版本


$ bin/hbase shell       //連線Hbase


連線hbase之後,Hbase的常用命令

如何建立名稱空間:

> create_namespace  '名稱空間名'     //建立名稱空間


兩種建立表的方式:

>create 名稱空間:表名,列簇名1,列簇名2,.........    //建立表格(預設版本數為1)


查看錶結構

>desc 名稱空間:表名


>create '名稱空間:表名,{NAME=>'列簇名',VERSIONS=>版本個數},{.......}    //建立表格(自定義版本數)


查看錶結構


scan 掃描表

> scan '名稱空間:表名'  掃描全表


> scan '名稱空間:表名' ,{COLUMNS => '列簇:列名'}  掃描該表的該列簇下的所有資料


> scan '名稱空間:表名' ,{COLUMNS => '列簇:列名'}  掃描該表的該列簇下該列名的所有資料


> scan '名稱空間:表名' ,{COLUMNS => ['列簇:列名','列簇:列名' ]}  掃描多列資料


> scan '名稱空間:表名' ,{COLUMNS => 列簇,STARTROW=>'rowkey'}    指定掃描的起始rowkey  


> scan '名稱空間:表名' ,{COLUMNS => 列簇,STARTROW=>'rowkey',STOPROW=>'rowkey}    給定掃描資料rowkey的範圍,預設是左閉右開 


> scan '名稱空間:表名' ,{LIMIT=>n}    只掃描設定n(正整數)條資料


> scan '名稱空間:表名' ,{COLUMNS => '列簇:列名', LIMIT=>n}    組合使用


get 獲取資料

get獲取的某條資料  

scan獲取的是一個範圍內的資料  

> get '名稱空間:表名' ,'rowkey'  獲取某條資料的cell 


> get '名稱空間:表名' ,'rowkey', {COLUMN => '列簇:列名'}   獲取某條資料某個列的cell


>get '名稱空間:表名', 'rowkey', ['列簇:列名', '列簇:列名']        獲取指定列的cell


刪除資料

刪除命令並不是立即從hdfs上刪除資料,刪除命令只是對對應的這些cell打上了‘刪除’標籤

打上‘刪除’標籤的cell不能直接scanget獲取資料

hbase進行大合併機制時才會徹底從hbase中刪除

> delete '名稱空間:表名','rowkey' ,'列簇:列名'   刪除某個cell內的所有的版本  

> deleteall '名稱空間:表名', 'rowkey', '列簇:列名'  也看可以刪除某條資料的某個cell所有版本


> deleteall '名稱空間:表名', 'rowkey'   刪除整條資料

> truncate 'xxx'  清空一張表

version 版本

優點:版本就是儲存了value值的多個歷史記錄,客戶端可以根據需求獲取歷史記錄  

建立表時預設的版本數是1個 ,多個版本時scanget時預設顯示最新版本

>create '名稱空間:表名,{NAME=>'列簇名',VERSIONS=>版本個數},{.......}    //建立表格(自定義版本數)

新增資料

>Put 名稱空間:表名,rowkey,列簇:列名,cell


> scan '名稱空間:表名'  預設顯示最新的值  


> scan '名稱空間:表名' , { VERSIONS=> n}  指定顯示最新的ncell的版本


> get '名稱空間:表名',rowkey',{COLUMN =>'列簇:列名', TIMESTAMP=>時間戳}   //獲取指定版本的cell的值 

刪除表

> disable '名稱空間:表名'  先禁用 

> drop '名稱空間:表名'  再刪除

> count '名稱空間:表名'    計算某張表有多少行資料