habase单机版安装及基本功能演示

时间:2022-01-10 08:02:14

本文所使用的Linux发行版本为:CentOS Linux release 7.4.1708 (Core)

准备工作

创建用户

useradd -m hadoop
passwd hadoop

下载安装包

1.jdk

到官方下载页面http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载jdk,我下载的版本为jdk-8u151-linux-x64.tar.gz。

2.hbase安装包

到hadoop官网下载hadoop的二进制包,我使用的版本为:hbase-1.2.6-bin.tar.gz。

将jdk和hbase的包上传到linux上,路径为:/home/hadoop。

hbase安装及配置

安装

以hadoop用户登录,分别解压jdk和hadoop的包。

tar -zxvf jdk-8u151-linux-x64.tar.gz
tar -zxvf hbase-1.2.6-bin.tar.gz

重命名hadoop的目录

mv hbase-1.2.6/ hbase/

hadoop运行环境配置

下面所有文件和文件夹的路径,都是相对于hadoop用户的用户目录/home/hadoop

设置jdk路径

vi hbase/conf/hbase-env.sh

设置jdk的路径

# The java implementation to use.  Java 1.7+ required.
export JAVA_HOME=/home/hadoop/jdk1.8.0_151

创建数据目录

mkdir -p data/hbase
mkdir -p data/zookeeper

设置数据目录

vi hbase/conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/hadoop/data/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/data/zookeeper</value>
</property>
</configuration>

hbase启动和连接

启动

hbase/bin/start-hbase.sh

查看hbase状态

在浏览器中输入http://IP:16010,可以查看hdfs的状态。如果50070端口没有打开,以root用户输入下面命令打开16010端口。

iptables -I INPUT -p tcp --dport 16010 -j ACCEPT

连接hbase

hbase/bin/hbase shell

出现如下界面,表示连接成功,可以输入hbase的命令。

hbase(main):001:0>

hbase基本操作

说明

将下面的学生基本信息数据,使用hbase进行存储,并进行相关的操作。

id name sex age
2018001 zhangsan male 23
2018002 lisi female 22
2018003 wangwu male 24

创建表student

hbase(main):004:0> create 'student', 'f1'
0 row(s) in 1.3200 seconds => Hbase::Table - student

查看有哪些表

hbase(main):006:0> list
TABLE
student 1 row(s) in 0.0490 seconds
=> ["student"]

添加数据

分别输入下面语句,将三个学生的信息添加到hbase中。

put 'student', '2018001','f1:name','zhangsan'
put 'student', '2018001','f1:sex','male'
put 'student', '2018001','f1:age','23' put 'student', '2018002','f1:name','lisi'
put 'student', '2018002','f1:sex','female'
put 'student', '2018002','f1:age','22' put 'student', '2018003','f1:name','wanwu'
put 'student', '2018003','f1:sex','male'
put 'student', '2018003','f1:age','24'

显示表的所有记录

hbase(main):022:0> scan 'student'
ROW COLUMN+CELL
2018001 column=f1:age, timestamp=1514122123963, value=23
2018001 column=f1:name, timestamp=1514122123729, value=zhangsan
2018001 column=f1:sex, timestamp=1514122123843, value=male
2018002 column=f1:age, timestamp=1514122124178, value=22
2018002 column=f1:name, timestamp=1514122124062, value=lisi
2018002 column=f1:sex, timestamp=1514122124129, value=female
2018003 column=f1:age, timestamp=1514122127361, value=24
2018003 column=f1:name, timestamp=1514122124292, value=wanwu
2018003 column=f1:sex, timestamp=1514122124394, value=male
3 row(s) in 0.1050 seconds

根据行键id为查看某一条记录

显示行键id为2018001的学生信息

get 'student','2018001'
COLUMN CELL
f1:age timestamp=1514122123963, value=23
f1:name timestamp=1514122123729, value=zhangsan
f1:sex timestamp=1514122123843, value=male
3 row(s) in 0.0200 seconds

修改一条记录

将id为2018003的学生age改为25

put 'student', '2018003','f1:age','25'
0 row(s) in 0.0190 seconds

删除某一条记录

删除id为2018002的学生信息

deleteall 'student','2018002'
0 row(s) in 0.0500 seconds