正文
一,前言
上节我们知道Hbase是hadoop体系中的分布式存储的nosql,他依赖于HDFS进行数据存储,依赖于Zookeeper进行hmaster的高可用,同时若要对其进行数据分析,可能还用到MapReduce。所以在进行服务安装的时候,必须要先安装HDFS,Zookeeper和yarn。若对这些安装有疑问,请查看前面章节。
二,前期准备
2.1 文件下载和解压
点击下载Hbase:当然也可以自己到官网下载相应的版本。链接地址:http://archive.apache.org/dist/hbase/
解压文件如下:
2.2 服务器准备
注意:JDK,Hdoop,zookeeper已经安装完成,若对这些安装有疑问,可以查看前面文章。
三,配置文件配置
下面对配置文件进行配置,主要当其中一台配置完毕后,需要将这些配置文件复制到另外两台。我这里配置的是hd3,配置完毕后,我将整个hbase的安装目录复制到了另外两台服务器。
3.1 hbase_env.sh
主要添加的配置如下:
export JAVA_HOME=/root/apps/jdk1.7.0_67 export HBASE_MANAGES_ZK=false
上述配置是指明运行环境,JDK和是否使用内置的zookeeper这里选择的是false,因为我们需要使用的是我们自己定义的zookeeper.
实际配置示例:
3.2 hbase_site.xml
主要添加的配置如下:
<configuration> <!-- 指定hbase在HDFS上存储的路径 --> <property> <name>hbase.rootdir</name> <value>hdfs://hd1:9000/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多个用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>hd1:2181,hd2:2181,hd3:2181</value> </property> </configuration>
注意:上述配置是最基本配置,若要对齐配置进行优化设置,可以查看官方文档。
实际配置示例:
3.3 regionservers
主要添加配置:
hd1
hd2
hd3
上述配置主要是添加需要启动HRegionServer的主机名。
3.4 将hbase的bin目录添加到环境变量
添加环境变量如下所示:
3.5 官方配置文件地址
四,Hbase服务启动
4.1 Hbase启动
启动前需要对服务器进行时间同步,否则会报错:
报错信息如下:
时间同步:
# 依次执行如下步骤 # 一,安装ntp服务 yum install ntp # 二,设置服务启动方式 systemctl enable ntpd # 三,启动服务 service ntpd restart # 四,将系统时区修改为上海时间 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后对其启动:
-->直接在命令行运行start-hbase.sh [root@hd1 ~]$ start-hbase.sh
然后可以通过JPS进行进程访问,如下所示:
4.2 Hbase的web页面访问
hbase启动完毕后,可以访问Hmaster所在服务的主机进行Hbase访问,如下所示:
五,Hbase的shell简单使用
5.1 hbase的命令行客户端
执行如下命令进入Hbase的命令行客户端:
[root@hd1 ~]$ hbase shell
如下示例:
5.2 hbase的简单使用
Hbase> list // 查看表 Hbase> status // 查看集群状态 Hbase> version // 查看集群版本
5.3 hbase的shell的DML
5.3.1 插入数据
hbase(main):011:0> put 't_user_info','001','base_info:username','zhangsan' 0 row(s) in 0.2420 seconds hbase(main):012:0> put 't_user_info','001','base_info:age','18' 0 row(s) in 0.0140 seconds hbase(main):013:0> put 't_user_info','001','base_info:sex','female' 0 row(s) in 0.0070 seconds hbase(main):014:0> put 't_user_info','001','extra_info:career','it' 0 row(s) in 0.0090 seconds hbase(main):015:0> put 't_user_info','002','extra_info:career','actoress' 0 row(s) in 0.0090 seconds hbase(main):016:0> put 't_user_info','002','base_info:username','liuyifei' 0 row(s) in 0.0060 seconds
5.3.2 查看数据
查看方式一:scan 扫描
hbase(main):017:0> scan 't_user_info' ROW COLUMN+CELL 001 column=base_info:age, timestamp=1496567924507, value=18 001 column=base_info:sex, timestamp=1496567934669, value=female 001 column=base_info:username, timestamp=1496567889554, value=zhangsan 001 column=extra_info:career, timestamp=1496567963992, value=it 002 column=base_info:username, timestamp=1496568034187, value=liuyifei 002 column=extra_info:career, timestamp=1496568008631, value=actoress
查看方式二:get单行数据
hbase(main):020:0> get 't_user_info','001' COLUMN CELL base_info:age timestamp=1496568160192, value=19 base_info:sex timestamp=1496567934669, value=female base_info:username timestamp=1496567889554, value=zhangsan extra_info:career timestamp=1496567963992, value=it 4 row(s) in 0.0770 seconds
5.3.3 删除数据
删除一个kv数据
hbase(main):021:0> delete 't_user_info','001','base_info:sex' 0 row(s) in 0.0390 seconds
删除整行
hbase(main):024:0> deleteall 't_user_info','001' 0 row(s) in 0.0090 seconds hbase(main):025:0> get 't_user_info','001' COLUMN CELL 0 row(s) in 0.0110 seconds
删除整个表
hbase(main):028:0> disable 't_user_info' 0 row(s) in 2.3640 seconds hbase(main):029:0> drop 't_user_info' 0 row(s) in 1.2950 seconds hbase(main):030:0> list TABLE 0 row(s) in 0.0130 seconds => []