目录
HBase 安装部署
Zookeeper 正常部署
Hadoop 正常部署
HBase 的解压
HBase 的配置文件
HBase 远程发送到其他集群
HBase 服务的启动
查看 HBase 页面
高可用(可选)
HBase Shell 操作
基本操作
Namespace
DDL
DML
HBase 安装部署
Zookeeper 正常部署
首先保证 Zookeeper 集群的正常部署,并启动之。
[lzl@hadoop12 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop13 zookeeper-3.5.7]$ bin/zkServer.sh start
[lzl@hadoop14 zookeeper-3.5.7]$ bin/zkServer.sh start
Hadoop 正常部署
Hadoop 集群的正常部署并启动。
[lzl@hadoop12 hadoop-3.1.3]$ sbin/start-dfs.sh
[lzl@hadoop13 hadoop-3.1.3]$ sbin/start-yarn.sh
HBase 的解压
-
解压 Hbase 到指定目录
[lzl@hadoop12 software]$ tar -zxvf hbase-2.4.11-bin.tar.gz -C /opt/module/ [lzl@hadoop12 software]$ mv /opt/module/hbase-2.4.11 /opt/module/hbase
-
配置环境变量
[lzl@hadoop12 ~]$ sudo vim /etc/profile.d/my_env.sh
添加
# HBASE_HOME export HBASE_HOME=/opt/module/hbase export PATH=$PATH:$HBASE_HOME/bin
-
使用
source
让配置的环境变量生效[lzl@hadoop12 module]$ source /etc/profile.d/my_env.sh
HBase 的配置文件
-
hbase-env.sh
修改内容export HBASE_MANAGES_ZK=false
-
hbase-site.xml
修改内容<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration><property><name>hbase.zookeeper.quorum</name><value>hadoop12,hadoop13,hadoop14</value><description>The directory shared by RegionServers.</description></property><!-- <property><name>hbase.zookeeper.property.dataDir</name><value>/export/zookeeper</value><description>记得修改 ZK 的配置文件ZK 的信息不能保存到临时文件夹</description></property> --><property><name>hbase.rootdir</name><value>hdfs://hadoop12:8020/hbase</value><description>The directory shared by RegionServers.</description></property><property><name>hbase.cluster.distributed</name><value>true</value></property> </configuration>
-
regionservers
文件hadoop12 hadoop13 hadoop14
-
解决 HBase 和 Hadoop 的 log4j 兼容性问题
[lzl@hadoop12 hbase]$ mv /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar /opt/module/hbase/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar.bak
HBase 远程发送到其他集群
[lzl@hadoop12 module]$ xsync hbase/
HBase 服务的启动
-
单点启动
[lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start master [lzl@hadoop12 hbase]$ bin/hbase-daemon.sh start regionserver
-
群启
[lzl@hadoop12 hbase]$ bin/start-hbase.sh
-
对应的停止服务
[lzl@hadoop12 hbase]$ bin/stop-hbase.sh
查看 HBase 页面
启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如:
http://hadoop12:16010
高可用(可选)
在 HBase 中 HMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。
-
关闭 HBase 集群(如果没有开启则跳过此步)
[lzl@hadoop12 hbase]$ bin/stop-hbase.sh
-
在
conf
目录下创建backup-masters
文件[lzl@hadoop12 hbase]$ touch conf/backup-masters
-
在
backup-masters
文件中配置高可用 HMaster 节点[lzl@hadoop12 hbase]$ echo hadoop13 > conf/backup-masters
-
将整个
conf
目录scp
到其他节点[lzl@hadoop12 hbase]$ xsync conf#集群分发脚本如下 #!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Enough Arguement!exit; fi #2. 遍历集群所有机器 for host in hadoop12 hadoop13 hadoop14 doecho ==================== $host ====================#3. 遍历所有目录,挨个发送for file in $@do#4 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone done
-
重启 HBase, 打开页面测试查看
http://hadoop12:16010
HBase Shell 操作
基本操作
-
进入 HBase 客户端命令行
[lzl@hadoop12 hbase]$ bin/hbase shell
-
查看帮助命令
hbase:001:0> help
Namespace
-
创建命名空间
hbase:002:0> help 'create_namespace'
-
创建命名空间
bigdata
hbase:003:0> create_namespace 'bigdata'
-
查看所有的命名空间
hbase:004:0> list_namespace
DDL
-
创建表
hbase:005:0> create 'bigdata:student', {NAME => 'info', VERSIONS => 5}, {NAME => 'msg'}
如果创建表格只有一个列族,没有列族属性,可以简写。
hbase:009:0> create 'student1','info'
-
查看表
hbase:013:0> list
查看一个表的详情
hbase:014:0> describe 'student1'
-
修改表
hbase:015:0> alter 'student1', {NAME => 'f1', VERSIONS => 3}
删除信息使用特殊的语法
hbase:015:0> alter 'student1', NAME => 'f1', METHOD => 'delete' hbase:016:0> alter 'student1', 'delete' => 'f1'
-
删除表
hbase:017:0> disable 'student1' hbase:018:0> drop 'student1'
DML
-
写入数据
hbase:019:0> put 'bigdata:student','1001','info:name','zhangsan' hbase:020:0> put 'bigdata:student','1001','info:name','lisi' hbase:021:0> put 'bigdata:student','1001','info:age','18'
如果重复写入相同 rowKey,相同列的数据,会写入多个版本进行覆盖。
-
读取数据
hbase:022:0> get 'bigdata:student','1001' hbase:023:0> get 'bigdata:student','1001' , {COLUMN => 'info:name'}
修改读取 cell 的版本数,默认读取一个。最多能够读取当前列族设置的维护版本数。
hbase:024:0>get 'bigdata:student','1001' , {COLUMN => 'info:name', VERSIONS => 6}
scan
是扫描数据,能够读取多行数据,不建议扫描过多的数据,推荐使用startRow
和stopRow
来控制读取的数据,默认范围左闭右开。hbase:025:0> scan 'bigdata:student',{STARTROW => '1001',STOPROW => '1002'}
-
删除数据
hbase:026:0> delete 'bigdata:student','1001','info:name'
deleteall
表示删除所有版本的数据,即为当前行当前列的多个 cell。(执行命令会标记数据为要删除,不会直接将数据彻底删除,删除数据只在特定时期清理磁盘时进行)hbase:027:0> deleteall 'bigdata:student','1001','info:name'