安装 hbase 之前需要先搭建好 hadoop 集群和 zookeeper 集群。群部
下载安装包 http://archive.apache.org/dist/hbase/1.3.1/。署基解压到安装目录。础命tar -zxvf hbase-1.3.1-bin.tar.gz我解压到了。群部
/opt/lagou/servers/hbase-1.3.1 目录。署基
修改配置文件把 hadoop 中配置的础命 core-site.xml、hdfs-site.xml 拷贝到 hbase 下的群部 conf 目录下ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/core-site.xml /opt/lagou/servers/hbase-1.3.1/conf/core-site.xml
ln -s /opt/lagou/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /opt/lagou/servers/hbase-1.3.1/conf/hdfs-site.xml修改 hbase-env.sh。#添加java环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_231
#指定使用外部的署基zk集群
export HBASE_MANAGES_ZK=FALSE修改 hbase-site.xml。
修改 regionservers。linux2
linux3
linux4在 hbase 的群部 conf 目录下创建文件 backup-masters。内容如下:
linux2在每个节点上配置环境变量,署基vi /etc/profile。础命export HBASE_HOME=/opt/lagou/servers/hbase-1.3.1
export PATH=$PATH:$HBASE_HOME/bin执行命令使配置生效。群部
source /etc/profile将 hbase-1.3.1 目录分发到其他 2 个节点。署基scp -r hbase-1.3.1 linux3:/opt/lagou/servers/
scp -r hbase-1.3.1 linux4:/opt/lagou/servers/启动集群。础命#启动命令
start-hbase.sh
#停止命令
stop-hbase.sh启动完成后,可以访问地址:HMaster 的 ip:16010。shell 命令行里如果输错了命令,删除需要使用 Ctrl+Backspace。
查看帮助命令。help查看当前数据库里有哪些表list创建一个 user 表,包含 user_info、extra_info 两个列族。源码下载create user,base_info,extra_info
#或者指定版本
create user2,{ NAME => base_info,VERSIONS => 3},{ NAME => extra_info,VERSIONS => 3}添加数据。向 user 表中 row key 为 rk1,列族 base_info 的 name 列上插入值’xiaowang’。put user,rk1,base_info:name,xiaowang向 user 表中 row key 为 rk1,列族为 base_info 的 age 列插入值 30。put user,rk1,base_info:age,30向 user 表中 row key 为 rk1,列族为 extra_info 的 address 列插入值’shanghai’。put user,rk1,extra_info:address,shanghai查询数据。查询 user 表中 row key 为 rk1 的所有信息。get user,rk1查询 user 表中 row key 为 rk1 的 base_info 列族的所有信息。get user,rk1,base_info查询 user 表中指定列族,指定字段的值。get user,rk1,base_info:name,base_info:age查询 user 表中多个列族的信息。get user,rk1,base_info,extra_info根据 rowkey 和列值进行查询。get user,rk1,{ FILTER => "ValueFilter (=,binary:shanghai)"}根据 row key 和列名进行模糊查询。查询出列名:address。
get user,rk1,{ FILTER => "QualifierFilter (=,substring:add)"}查询表中所有数据。scan user查询表中列族为 base_info 的信息。scan user,{ COLUMNS => base_info}
# Scan时可以设置是服务器租用否开启Raw模式,开启Raw模式会返回包括已添加删除标记但是未实际删除的数据
# VERSIONS指定查询的最大版本数
scan user,{ COLUMNS => base_info,RAW => true, VERSIONS=> 3}查询 user 表中列族为 base_info、extra_info,且列名中含 add 字符的数据。scan user,{ COLUMNS => [base_info,extra_info],FILTER => "(QualifierFilter(=,substring:add))"}rowkey 的范围值查询。scan user,{ COLUMNS => base_info,STARTROW => rk1,ENDROW => rk3}指定 rowkey 模糊查询。查询 user 表中 row key 以 rk 开头的数据。
scan user ,{ FILTER =>"PrefixFilter(rk)"}更新数据。更新操作同插入操作一模一样,只不过有数据就更新,没数据就添加。
更新数据值。将 user 表中 rowkey 为 rk1 的 base_info 列族下的 name 修改为 xiaoliao
put user,rk1,base_info:name,xiaoliao删除数据和表。指定 rowkey 以及列名进行删除。delete user,rk2,base_info:name指定 rowkey 以及列名、时间戳进行删除。delete user,rk2,base_info:age,1662245345710删除列族。alter user,delete => extra_info清空表数据truncate user删除表。#先disable,再drop,否则会报错
disable user
drop user云服务器