Hbase 的简介Hbase的结构
hbase 的逻辑结构hbase 的物理结构 hbase 的数据模型hbase 入门安装
Hbase 的简介文章内容根据尚硅谷大数据技术hbase学习持续更新,,,
Hbase的结构 hbase 的逻辑结构Hbase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。逻辑上,Hbase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 Hbase 的底层物理存储结构(K-V)来看,Hbase 更像是一个 multi-dimensional map。
ps:与mysql的区别就是有很多不同的列族,不同的列族可以放在不同的文件夹里面,就是将一张表通过列族的方式存储在很多文件中
hbase 的物理结构region是表中的一张横向切片
row key ;行键,按照字典序进行排序
store:hbase存储的文件;
hbase 的数据模型timestamp时间戳,操作的时间,就是对表进行操作的时间(可以自己设定但是不能比原来的时间小),不同的版本可以根据timestamp来进行区分;
type:就是对于表中的操作,put delete 是操作标注
hbase 入门安装Name space:相当于数据库的概念,每个命名空间都会有很多表,hbase本身自带两个,hbase和default,hbase中存放的就是hbase中的内置表,default是用户默认的使用空间
row(行): Hbase 表中的每行数据都由一个 yRowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要;region:类似于关系型数据库的表概念。不同的是,Hbase 定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往 Hbase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,Hbase 能够轻松应对字段变更的场景。cell:由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。(表中的单元格)
- 环境准备 :centos虚拟机,hadoop, zookepper下载安装包:
链接:https://pan.baidu.com/s/1h6fwtw7g3Pqr1V7tD4WtMQ
提取码:zyhk上传到虚拟机的目录中(tools这个可以自定义的)将其解压
[root@niit02 tools]# tar -zvxf hbase-2.0.3-bin.tar.gz -C /training/
- 配置环境变量
[root@niit02 ~]# vi ~/.bash_profile export Hbase_HOME=/training/hbase-2.0.3 export PATH=$PATH:$Hbase_HOME/bin 保存退出 [root@niit02 ~]# source ~/.bash_profile 环境变量生效
- 修改hbase-env.sh内容
cd /training/hbase-2.0.3/conf/ vi hbase-env.sh export JAVA_HOME=/training/jdk1.8.0_171 #jdk的位置 export Hbase_CLASSPATH=/training/zookeeper-3.4.5/conf export Hbase_MANAGES_ZK=ture #连接外部zookeeper 保存退出
- 修改hbase-site.sh
cd /training/hbase-2.0.3/conf/ vi hbase-site.xmlhbase.cluster.distributed true # l ·true表示是分布式 2﹑false表示单机模式,Hbase和Zookeeper会运行在同一个JVM里面。hbase.rootdir hdfs://niit02:9000/hbase #macxiao为服务器主机名.配置hbase存储在hadoop的hdfs的位置dfs.replication 1 hbase.zookeeper.quorum niit02 hbase.zookeeper.property.clientPort 2181 hbase.unsafe.stream.capability.enforce #使用我们电脑的文件系统,作为数据存储○false hbase.master.ipc.address 0.0.0.0 保存退出 hbase.regionserver.ipc.address 0.0.0.0
- 启动测试(先运行Hadoop,zookeeper)
[root@niit02 hbase-2.0.3]# ./bin/start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/training/hbase-2.0.3/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/training/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] 进入shell环境 [root@niit02 hbase-2.0.3]# ./bin/hbase shell SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/training/hbase-2.0.3/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/training/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] 启动成功: hbase(main):001:0> list TABLE stu stu1info1 t1 3 row(s) Took 1.3497 seconds => ["stu", "stu1info1", "t1"]
- 输入niit02:16010进行验证出现如下界面安装成功



