下载安装
hbase下载
解压之后根目录,没有什么要修改的。
配置文件目录,主要修改hbase-env.cmd和hbase-site.xml
hbase-env.cmd
set HBASE_MANAGES_ZK=true
set JAVA_HOME=C:\Program Files\Java\jre1.8.0_201
set HBASE_CLASSPATH=G:\datacenter\hbase-2.2.0\conf
HBASE_MANAGES_ZK值为false表示zookeeper外装,HBASE_MANAGES_ZK的为true,表示zookeeper自带。
这里我们配置的是单机测试模式,所以使用HBase自带的ZK就可以了,所以配置为true。
hbase-site.xml
hbase.master
localhost
hbase.rootdir
file:///G:/datacenter/hbdata/root
hbase.tmp.dir
G:/datacenter/hbdata/tmp
hbase.zookeeper.quorum
localhost
hbase.zookeeper.property.dataDir
G:/datacenter/hbdata/zoo
hbase.cluster.distributed
false
hbase.master.info.port
60010
上面最重要的是hbase.rootdir,本地测试配置本地文件系统目录就可以了,单机模式hbase.cluster.distributed配置为false。
hbase.rootdir
hbase.rootdir配置region server的共享目录,用来持久化Hbase
可以配置hdfs路径或者本地文件系统路径: hdfs:
hdfs://localhost:49002/hbase
本地文件系统:
file:///G:/datacenter/hbdata/root
默认情况下Hbase是写到/tmp:
file:///tmp/hbase-${user.name}/hbase
不改这个配置,数据会在重启的时候丢失
hbase.cluster.distributed
配置Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。默认: false
外部ZK此处必须为true,不然hbase仍用自带的zk,若启动了外部的zookeeper,会导致冲突,hbase启动不起来
hbase.zookeeper.quorum
集群的地址列表,用逗号分割。例如: "192.168.10.5,192.168.10.6,192.168.10.7"
默认是localhost,这个值对于分布式应用显然是不可以的
ZK可以直接在hbase-site.xml配置,也可以通过在conf目录下添加一个zoo.cfg文件来配置ZK
hbase.zookeeper.property.clientPort
Zk客户端连接的端口
hbase.zookeeper.property.dataDir
ZK数据存储位置
按照zookeeper配置zoo.cfg中的dataLogDir=/home/hadoop/zookeeper-3.4.6/datalog路径配置即可
hbase.master.info.port
hbase-ui端口,监控页http://localhost:60010/master-status -1表示禁用ui,默认60010
更多hbase配置选项。
启动与基本命令
hbase是一个数据库,像MySQL一样要先启动:
start-hbase
如果没有什么错误应该出现上面的信息,如果有错误根据错误信息定位,我再windows系统中下载的hbase2.2.0在hbase根目录下的lib目录中添加了下面几个jar包才启动成功的。
根据ClassNotFound,对比的源码的依赖版本添加的jar包。
启动成功之后可以通过浏览器访问web界面查看相关信息。
然后我们可以使用客户端连接:
hbase shell
可以通过hbase shell启动客户端与hbase数据库进行交互。
hbase shell启动一个客户端连接hbase数据库,然后我们可以执行一些添加删除等基本操作了。
HBase基本操作
基本命令
help:查看命令帮助
status:查看hbase状态
version:查看hbase版本
list_namespace:查看表空间
表操作
create:创建表
exists:检查表是否存在
list:查看所有表
alter:修改表
delete:删除列
disable:禁用表
is_enabled:查看表是否禁用
desc:查看表结构
drop:删除表
插入数据
put:插入数据
查询
count:统计表有多少行
get:获取数据
scan:扫描表或者列