HBase基础入门

文章内容根据尚硅谷大数据技术hbase学习持续更新,,,

Hbase 的简介

HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map。
ps:与mysql的区别就是有很多不同的列族,不同的列族可以放在不同的文件夹里面,就是将一张表通过列族的方式存储在很多文件中

Hbase的结构

hbase 的逻辑结构

hbase逻辑结构

region是表中的一张横向切片
row key ;行键,按照字典序进行排序
store:hbase存储的文件;

hbase 的物理结构

hbase

timestamp时间戳,操作的时间,就是对表进行操作的时间(可以自己设定但是不能比原来的时间小),不同的版本可以根据timestamp来进行区分;
type:就是对于表中的操作,put delete 是操作标注

hbase 的数据模型

  1. Name space:相当于数据库的概念,每个命名空间都会有很多表,hbase本身自带两个,hbase和default,hbase中存放的就是hbase中的内置表,default是用户默认的使用空间
    row(行): HBase 表中的每行数据都由一个 yRowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要;
  2. region:类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景。
  3. cell:由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。(表中的单元格)

hbase 入门安装

  1. 环境准备 :centos虚拟机,hadoop, zookepper
  2. 下载安装包:
    链接:https://pan.baidu.com/s/1h6fwtw7g3Pqr1V7tD4WtMQ
    提取码:zyhk
  3. 上传到虚拟机的目录中(tools这个可以自定义的)将其解压
[root@niit02 tools]# tar -zvxf hbase-2.0.3-bin.tar.gz  -C /training/
  1. 配置环境变量
[root@niit02 ~]# vi ~/.bash_profile
export HBASE_HOME=/training/hbase-2.0.3
export PATH=$PATH:$HBASE_HOME/bin
保存退出
[root@niit02 ~]# source ~/.bash_profile
环境变量生效
  1. 修改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
保存退出
  1. 修改hbase-site.sh
cd /training/hbase-2.0.3/conf/
vi hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
# l ·true表示是分布式 2false表示单机模式,Hbase和Zookeeper会运行在同一个JVM里面。
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://niit02:9000/hbase</value>
#macxiao为服务器主机名.配置hbase存储在hadoop的hdfs的位置
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>niit02</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
#使用我们电脑的文件系统,作为数据存储○
<value>false</value>
</property>
<property>
<name>hbase.master.ipc.address</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>

保存退出
  1. 启动测试(先运行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"]


  1. 输入niit02:16010进行验证出现如下界面安装成功
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值