学习资料:
(55条消息) HBase常用命令(超全超详细)_小财迷,嘻嘻的博客-CSDN博客_hbase put命令
Hbase的安装(详细步骤) - 黄文超 - 博客园 (cnblogs.com)
1、得安装的有hdfs系统
2、得安装zookeeper集群
[root@hadoop102 software]$ pwd
/opt/software
[root@hadoop102 soft]$ tar -zxvf hbase-2.2.6-bin.tar.gz -C /opt/module/
# ...
[root@hadoop102 software]$ cd /opt/module/
[root@hadoop102 module]$ ls
hadoop-3.1.3 hbase-2.2.6 jdk1.8.0_212 spark-standalone spark-yarn
[root@hadoop102 module]$ cd hbase-2.2.6/
[root@hadoop102 hbase-2.2.6]$ ls
bin conf LEGAL LICENSE.txt README.txt
CHANGES.md hbase-webapps lib NOTICE.txt RELEASENOTES.md
[root@hadoop102 hbase-2.2.6]$ cd /opt/module/hbase-2.2.6/conf
[root@hadoop102 conf]$ vim hbase-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_212
export HBASE_MANAGES_ZK=false
[root@hadoop102 conf]$ vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdirname>
<value>hdfs://hadoop102:8020/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>hadoop102,hadoop103,hadoop104value>
property>
<property>
<name>hbase.master.info.portname>
<value>60010value>
property>
<property>
<name>hbase.unsafe.stream.capability.enforcename>
<value>falsevalue>
property>
configuration>
[root@hadoop102 conf]$ vim regionservers
hadoop102
hadoop103
hadoop104
[root@hadoop102 conf]$ vim backup-masters
hadoop103
将 hadoop102上的HBase安装包,拷贝到其他机器上(xsync 是自己定义的分发脚本)
[root@hadoop102 module]$ xsync hbase-2.2.6
ln -s /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml /opt/module/hbase-2.2.6/conf/core-site.xml
ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase-2.2.6/conf/hdfs-site.xml
vim /etc/profile
export HBASE_HOME=/opt/module/hbase-2.2.6
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
start-dfs.sh
命令zkServer.sh start
命令[root@hadoop102 ~]$ start-hbase.sh
启动完后,jps查看HBase相关进程
hadoop102、hadoop103上有进程HMaster、HRegionServer
hadoop10上有进程HRegionServer
[root@hadoop102 module]$ jpsall
=============== hadoop102 ===============
2065 NameNode
5521 HRegionServer # HRegionServer
6452 Jps
3895 NodeManager
4648 QuorumPeerMain
2204 DataNode
2572 JobHistoryServer
5340 HMaster # HMaster
=============== hadoop103 ===============
2352 ResourceManager # HRegionServer
4368 HMaster # HMaster
5250 Jps
3450 QuorumPeerMain
2142 DataNode
2495 NodeManager
=============== hadoop104 ===============
3558 SecondaryNameNode
3686 NodeManager
3481 DataNode
4297 QuorumPeerMain
4988 HRegionServer # HRegionServer
5228 Jps
其他
可以注释掉所有机器的hbase-env.sh当中的
“HBASE_MASTER_OPTS”和“HBASE_REGIONSERVER_OPTS”配置 来解决这个问题。
不过警告不影响我们正常运行,可以不用解决
我们也可以执行以下命令,单节点启动相关进程
#HMaster节点上启动HMaster命令
hbase-daemon.sh start master
#启动HRegionServer命令
hbase-daemon.sh start regionserver
浏览器页面访问
http://hadoop102:60010/master-status
停止HBase集群的正确顺序
$ stop-hbase.sh
1、进入shell环境
$ hbase shell
2、list 列出HBase所有的表的相关信息,例如表名;
hbase(main):001:0> list
TABLE
0 row(s)
Took 0.7845 seconds
=> []
3、其他
#获取帮助
> help
#获取命令的详细信息
> help 'status'
# 查看版本信息
version
#创建一张名为Student的表,包含基本信息(baseinfo)、学校信息(schoolinfo)两个列簇
create 'student','haseinfo','schoolinfo'
hbase(main):005:0> create 'student','haseinfo','schoolinfo'
Created table student
Took 2.4659 seconds
=> Hbase::Table - student
hbase(main):010:0> list
TABLE
student
1 row(s)
Took 0.0238 seconds
=> ["student"]
#删除表前需要先禁用表
disable 'student'
#删除表
drop 'student'
命令格式:
snapshot 'student','temp'
clone_snapshot 'temp','stu'
delect_snapshot 'temp'
命令格式:desc ‘表名’
desc 'student'
exists 'student'
#禁用表
disable 'student'
#检查表是否被禁用
is_disabled 'student'
#启用表
enable 'student'
#检查表是否被启用
is_enabled 'student'
alter 'student','teacherinfo'
hbase(main):014:0> alter 'student','teacherinfo'
Updating all regions with the new schema...
1/1 regions updated.
Done.
Took 2.6110 seconds
alter 'student',{NAME => 'teacherinfo', METHOD => 'delete'}
默认情况下列族只存储一个版本的数据,如果需要存储多个版本的数据,则需要修改列族的属性。修改后可通过 desc 命令查看。
alter 'student',{NAME=>'baseinfo',VERSIONS=>3}
命令格式:
put ‘表名’, ‘行键’,‘列簇名:列名’, ‘值’[,时间戳]
put 'student', '1','haseinfo:name','tom'
put 'student', '1','haseinfo:birthday','1990-01-09'
put 'student', '1','haseinfo:age','29'
put 'student', '1','haseinfo:localtion','Boston'
hbase(main):021:0> put 'student', '1','haseinfo:name','tom'
Took 0.0234 seconds
# 获取指定行中所有列的数据信息
get 'student','1'
# 获取指定行中指定列族下所有列的数据信息
get 'student','1','haseinfo'
# 获取指定行中指定列的数据信息
get 'student','1','haseinfo:name'
hbase(main):027:0> get 'student','1'
COLUMN CELL
haseinfo:name timestamp=1648954173414, value=tom
haseinfo:age timestamp=1648954057153, value=29
haseinfo:birthday timestamp=1648954052884, value=1990-01-09
haseinfo:localtion timestamp=1648954065369, value=Boston
1 row(s)
Took 0.1582 seconds
hbase(main):032:0> get 'student','1','haseinfo:name'
COLUMN CELL
haseinfo:name timestamp=1648954173414, value=tom
1 row(s)
Took 0.0134 seconds
# 删除指定行
delete 'student','1'
# 删除指定行中指定列的数据
delete 'student','1','haseinfo:name'
hbase 中访问数据有两种基本的方式:
scan 可以设置 begin 和 end 参数来访问一个范围内所有的数据。get 本质上就是 begin 和 end 相等的一种特殊的 scan。
# 获取指定行中所有列的数据信息
get 'student','1'
# 获取指定行中指定列族下所有列的数据信息
get 'student','1','haseinfo'
# 获取指定行中指定列的数据信息
get 'student','1','haseinfo:name'
#查询整表数据
scan 'student'
#查询指定列簇的数据
scan 'student', {COLUMN=>'haseinfo'}
# 查询指定列的数据
scan 'student', {COLUMNS=> 'haseinfo:birthday'}
# 查看指定列两个版本的数据
scan 'student', {COLUMNS=> 'haseinfo:birthday',VERSIONS=>2}
# 查看前3条数据
scan 'student',{LIMIT=>3}