前提:在已经安装了伪分布Hadoop的环境安装hbase-0.94.2-security.tar.gz;
1、安装被配置环境变量:
#cd /usr/local
#tar -zxvf hbase-0.94.2-security.tar.gz
#mv hbase-0.94.2-security hbase
之后配置环境变量:
export HBASE_HOME=/usr/local/hbase
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin
#source /etc/profile
2、修改配置文件:
修改conf中的
hbase-env.sh文件:
去掉下面两行的注释,并且修改JAVA_HOME变量:
1 export JAVA_HOME=/usr/local/jdk 2 export HBASE_MANAGES_ZK=true
修改conf中的
hbase-site.xml文件:
添加如下设置:
1 <property> 2 <name>hbase.rootdir</name> 3 <value>hdfs://hadoop0:9000/hbase</value> 4 </property> 5 <property> 6 <name>hbase.cluster.distributed</name> 7 <value>true</value> 8 </property> 9 <property> 10 <name>hbase.zookeeper.quorum</name> 11 <value>hadoop0</value> 12 </property> 13 <property> 14 <name>dfs.replication</name> 15 <value>1</value> 16 </property>
之后,先启动hadoop,再启动Hbase,命令:start-hbase.sh
用jps查看进程,除了hadoop的五个进程外,还有HQuorumPeer,HMaster,HRegionServer三个进程:
3、Hbase Shell操作
hbase shell指令进入shell模式:
通过直接创建一个例子,学习其中的操作,其中和SQL有类似之处,也有很多不同,注意其中的“列族”的概念:
创建表
>create 'users','user_id','address','info'
表users,有三个列族user_id,address,info
列出全部表
>list
得到表的描述
>describe 'users'
创建表
>create 'users_tmp','user_id','address','info'
删除表
>disable 'users_tmp'
>drop 'users_tmp'
添加记录
put 'users','xiaoming','info:age','24'put 'users','xiaoming','info:birthday','1987-06-17'put 'users','xiaoming','info:company','alibaba'put 'users','xiaoming','address:contry','china'put 'users','xiaoming','address:province','zhejiang'put 'users','xiaoming','address:city','hangzhou'put 'users','zhangyifei','info:birthday','1987-4-17'put 'users','zhangyifei','info:favorite','movie'put 'users','zhangyifei','info:company','alibaba'put 'users','zhangyifei','address:contry','china'put 'users','zhangyifei','address:province','guangdong'put 'users','zhangyifei','address:city','jieyang'put 'users','zhangyifei','address:town','xianqiao'
获取一条记录
1.取得一个id的所有数据
>get 'users','xiaoming'
2.获取一个id,一个列族的所有数据
>get 'users','xiaoming','info'
3.获取一个id,一个列族中一个列的
所有数据
>
get 'users','xiaoming','info:age'
更新记录
>put 'users','xiaoming','info:age' ,'29'>get 'users','xiaoming','info:age'>put 'users','xiaoming','info:age' ,'30'>get 'users','xiaoming','info:age'
获取单元格数据的版本数据
>get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>1}>get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>2}>get 'users','xiaoming',{COLUMN=>'info:age',VERSIONS=>3}
获取单元格数据的某个版本数据
〉get 'users','xiaoming',{COLUMN=>'info:age',TIMESTAMP=>1364874937056}
全表扫描
>scan 'users'
删除xiaoming值的'info:age'字段
>delete 'users','xiaoming','info:age'
>get 'users','xiaoming'
删除整行
>deleteall 'users','xiaoming'
统计表的行数
>count 'users'
清空表
>truncate 'users'