【实验描述】
HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。本实验主要介绍HBASE的常用操作命令。
实验前提:成功搭建基础Hadoop集群环境
HBASE版本:hbase-1.2.6.1-bin.tar.gz
链接: https://pan.baidu.com/s/1t-dCbCJ_0qyjLGyNJh4H2g 提取码: 7ie1 复制这段内容后打开百度网盘手机App,操作更方便哦
上传软件包及解压
[root@hadoop1 ~]# cd /opt
[root@hadoop1 opt ~]# rz
#HBASE软件包解压到/hadoop/soft目录中,并将解压的目录改名为hbase
[root@hadoop1 opt]# tar -zxvf hbase-1.2.6.1-bin.tar.gz -C /hadoop/soft
[root@hadoop1 soft]# ls
hadoop hbase-1.2.6.1 jdk1.7.0_79
[root@hadoop1 soft]# mv hbase-1.2.6.1 hbase
[root@hadoop1 soft]# ls
hadoop hbase jdk1.7.0_79
添加环境变量
[root@hadoop1 soft]# vim .bash_profile
添加以下内容:
HBASE_HOME=/hadoop/soft/hbase
HADOOP_HOME=/hadoop/soft/hadoop-2.8.3
JAVA_HOME=/hadoop/soft/jdk1.7.0_79
PATH=$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH:$HOME/bin
#保存退出后刷新
[root@hadoop1 soft]# source .bash_profile
修改配置文件内容
[root@hadoop1 soft]# cd /hadoop/soft/hbase/conf/
[root@hadoop1 conf]# vim hbase-env.sh
修改内容如下
export JAVA_HOME=/hadoop/soft/jdk1.7.0_79
保存退出。
#执行vim hbase-site.xml命令修改文件内容
[root@hadoop1 conf]# vim hbase-site.xml
添加如下内容
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:9000/hbase</value>
</property>
</configuration>
验证
[root@hadoop1 conf]# cd /hadoop/soft/hbase/bin/
[root@hadoop1 bin]# start-hbase.sh
starting master, logging to /hadoop/soft/hbase/bin/../logs/hbase-root-master-hadoop1.out
[root@hadoop1 bin]# jps
37416 NameNode
64116 Jps
63811 HMaster
37565 DataNode
37928 NodeManager
37819 ResourceManager
进入hbase shell 环境并执行基础操作
#进入shell环境
[root@hadoop1 bin]# cd /hadoop/soft/hbase/bin/
[root@hadoop1 bin]# hbase shell
HBASE常用命令的基础操作:
hbase(main):002:0> create 'studentinfo','info'
0 row(s) in 1.2410 seconds
=> Hbase::Table - studentinfo
hbase(main):004:0> list
TABLE
studentinfo
1 row(s) in 0.0060 seconds
=> ["studentinfo"]
hbase(main):005:0>
- 利用put命令向表 xiandian 中插入一组数据为”row01,info:name,tom”、 ”row01,info:age,23”、 ”row02,info:name,jack”、 ”row02,info:age,24”,并浏览插入的数据。
#新增数据
hbase(main):007:0> put 'studentinfo','row01','info:name','tom'
0 row(s) in 0.1670 seconds
hbase(main):008:0> put 'studentinfo','row01','info:age','23'
0 row(s) in 0.0120 seconds
hbase(main):009:0> put 'studentinfo','row02','info:name','jack'
0 row(s) in 0.0120 seconds
hbase(main):012:0> put 'studentinfo','row02','info:age','24'
0 row(s) in 0.0080 seconds
#浏览数据
hbase(main):013:0> scan 'studentinfo'
ROW COLUMN+CELL
row01 column=info:age, timestamp=1534061668762, value=23
row01 column=info:name, timestamp=1534061653030, value=tom
row02 column=info:age, timestamp=1534061731183, value=24
row02 column=info:name, timestamp=1534061689929, value=jack
2 row(s) in 0.0540 seconds
- 利用get命令查询表 studentinfo中 rowkey 为 row01 的记录
hbase(main):014:0>get 'studentinfo','row01'
COLUMN CELL info:age timestamp=1534061668762, value=23 info:name timestamp=1534061653030, value=tom
2 row(s) in 0.0170 seconds
- 删除表studentinfo中row01的所有数据
#查询表studentinfo中的数据
hbase(main):015:0> scan 'studentinfo'
ROW COLUMN+CELL
row01 column=info:age, timestamp=1534061668762, value=23
row01 column=info:name, timestamp=1534061653030, value=tom
row02 column=info:age, timestamp=1534061731183, value=24
row02 column=info:name, timestamp=1534061689929, value=jack
2 row(s) in 0.0190 seconds
// 从上述显示现象可以看到有两组数据row01和row02
#删除row01的数据
hbase(main):016:0> deleteall 'studentinfo','row01'
0 row(s) in 0.0270 seconds
hbase(main):017:0> scan 'studentinfo'
ROW COLUMN+CELL
row02 column=info:age, timestamp=1534061731183, value=24
row02 column=info:name, timestamp=1534061689929, value=jack
1 row(s) in 0.0140 seconds
// 从上述显示现象可以看到row01的数据已经删除
- 查询表studentinfo的表结构,最后将表studentinfo删除
#查看表结构
hbase(main):018:0> describe 'studentinfo'
Table studentinfo is ENABLED
studentinfo
COLUMN FAMILIES DESCRIPTION
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
1 row(s) in 0.0810 seconds
#关闭表studentinfo
hbase(main):019:0> disable 'studentinfo'
0 row(s) in 2.4300 seconds
#删除表studentinfo
hbase(main):020:0> drop 'studentinfo'
0 row(s) in 1.3170 seconds
hbase(main):021:0> list
TABLE
0 row(s) in 0.0040 seconds
=> []
// 从list命令的显示现象看表studentinfo已经删除