Hbase数据库入门
Hbase概述
Apache Hbase是hadoop数据库,是一个分布式,可扩展的大数据存储。
当您需要对大数据进行随机,实时读/写访问时,请使用Apache HBase。该项目的目标是托管非常大的表-数十亿行x百万列-在商品硬件集群上。Apache HBase是一个开源的,分布式的,版本化的非关系数据库,模仿Google的Bigtable;Chang等人的结构化数据分布式存储系统。正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能。
2006年-google发表了bigtable的白皮书
2006年-开始开发hbase
2008年-hbase正式成为apache的子项目
2010年-正式成为apache的顶级项目
Hbase架构
Hbase集群安装部署
集群配置
zk集群5台
hadoop集群5台
hbase集群5台
1)上传hbase安装文件
hbase-1.3.0-bin.tar.gz
2)解压
3)修改配置文件
conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_181
export HBASE_MANAGES_ZK=false
conf/hbase-site.xml
<configuration>
<!-- 设置namenode所在位置 通过rootdir设置 也就是设置hdfs中存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://bigdata121:9000/hbase</value>
</property>
<!-- 是否开启集群 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<!-- zookeeper集群的位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>bigdata121:2181,bigdata122:2181,bigdata123:2181,bigdata124:2181,bigdata125:2181</value>
</property>
<!-- hbase的元数据信息存储在zookeeper的位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/hd/zookeeper-3.4.10/zkData</value>
</property>
</configuration>
conf/regionservers
bigdata121
bigdata122
bigdata123
bigdata124
bigdata125
这样配置就改好了。
然后是依赖问题
4)解决依赖问题
把相关版本的zookeeper和hadoop的依赖包导入到hbase/lib下
软连接hadoop配置
ln -s /hadoop/core-site.xml /hbase/conf/
ln -s /hadoop/hdfs-site.xml /hbase/conf/
这样就好了
5)启动
在启动hbase时,先请确保hdfs集群,yarn集群,zookeeper集群启动完成。
单点启动
主节点
bin/hbase-daemon.sh start master
从节点
bin/hbase-daemon.sh start regionserver
启动成功
jps
主节点显示
25905 AzkabanExecutorServer azkaban的执行器进程
28913 HMaster hbase集群的管理进程
26850 NameNode hdfs集群的元数据进程
3620 ResourceManager yarn集群的资源管理进程
28804 QuorumPeerMain zookeeper的进程
29268 Jps
29193 Main
25979 AzkabanWebServer azkaban的服务端进程
从节点显示
18641 DataNode hdfs的数据进程
20370 HRegionServer hbase的数据存储进程
20250 QuorumPeerMain zookeeper的进程
4348 NodeManager yarn的job任务进程
20462 Jps
在进程上看出现了HMater HRegionServer就说明成功了。
进入hbase的shell命令
bin/hbase shell
6)ui界面
http://192.168.252.121:16010/master-status
Hbase shell
1)查看服务器状态
status 'bigdata121'
2)查看当前有哪些表
list
3)查看帮助
help
hbase 表操作
1)创建表
create '表名’,'列族'
2)全表扫描
scan '表名'
rowkey:行键:唯一 不重要
timestamp:时间戳
cell:单元格 数据存放位置
column family:列族,列族下包含多个列
column:列
3)向表中插入数据
put '表名','rowkey','列族:列名','值'
4)覆盖数据
在hbase中没有修改,但是可以覆盖只要保持rowkey,列族,列相同即可进行覆盖操作
5)筛选扫描
scan 'user',(STARTROW =>'101',STOPROW => '101')
6)查看表结构
describe '表名'
7)变更表信息
alter '表名',{NAME => 'info',VERSIONS => '3'}
8)删除数据
根据rowkey删除
deleteall '表名','rowkey'
根据具体的列删除
delete '表名','rowkey','列族:列'
9)清空表
truncate '表名'
10)删除表
第一步:设置不可用
disable '表名'
第二步:删除该表
drop '表名'
11)统计表中数据行数
count '表名'
12)查看指定rowkey值
get '表名','1002'
13)查看具体列值
get '表名','1002','info:name'