Hbase简介和安装

hbase简介

hbase是一个高可靠性,高性能,面向列,可伸缩,可实时读写的分布式数据库。
利用hadoop HDFS作为文件存储系统,利用hadoop MR来处理HBase中的海量数据,利用zk作为分布式协同服务。
主要用来存储非结构化和半结构化的松散数据(列存储,NoSQL数据库)

ROW KEY决定一行数据,按照字典排序,最大存储64k,太大查询效率极低,row key 设计,加时间戳,row key 设计策略。

列族 Column Family ,一个列族里面可以有很多列,权限控制、存储以及调优都是在列族层面进行。

无类型 字节数据 

HBase-1.2

1、hbase中有row key,column family,column,cell

每个cell单元格能设置版本,可以设置有1个版本10各版本,版本通过时间戳timestamp来区分,可以有新的版本,换成之前的版本等,解决了数据更新的问题。

短期之内cell历史版本不会删除,只有在文件合并等会删除。

2、hbase 中null不占用存储空间。cell单元格中都是未解析的字节数组组成,cell无类型,以字节码存储。

3、row key 大小最大64k,row key 设计很关键,影响效率。

4、可以存储结构化、非结构化、半结构化的数据。

5、hbase使用字典排序。如果cell有多个版本,可以使用一个最大值减去最之前的数据,使历史数据往下排列(字典排序)。

比如001 也可以换成100往下降 策略。

6、列族是可以操作的最小单位,列族下可以存放几百万个列,调优、权限控制都是列族层面的。

7、WAL log hbase的日志文件,里面存储的 操作的记录 和 数据信息 。用于恢复数据,可以开启,不重要的数据可以不开启。

恢复根据数据量可能会很慢。

HBase Compact &&Split

当StoreFile文件数量增长到一定阀值,就会触发Compact合并操作,并将多个StoreFile合并成一个StoreFile,当这个StoreFile大小超过一定阀值后,会触发Split操作,同时把当前Region Split成2个Region,这是旧的Region会下线,新Split出的2个Region会被HMaster分配到相应的HregionServer上,使得原先1个Region的压力得以分散到2个Region上。

如下图四个Storefile文件(从memstore文件经过flush而得到,默认64M的storefile文件)经过Compact合并成一个大的256M storefile文件,当设定的Region阀值为128M时,就会Split为两个128M的Storefile文件,然后HMaster再把这两个storefile文件分配到不停地Regionserver上。

 

分布式安装

1、下载地址https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/hbase-1.2.11/

下载后解压

2、cd hbase-1.2/conf           

vim hbase-env.sh

 export JAVA_HOME=/usr/local/jdk
 export HBASE_MANAGES_ZK=false  # 用现有zk,不用hbase自带的

hbase-site.xml

<!-- zk 的主机名-->
这里的主机名也不需要写端口,否则其他组件连接会报域名解析失败,如kylin
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>master,node1,node2</value>
</property>

<!--hadoop dfs的地址,ha的hadoop不用写端口-->
<property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
</property>

<!--表示分布式安装-->
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>

<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>

vim  regionservers

node1
node2

3、把hdfs-site.xml 复制到hbase/conf/下

4、分发到节点

先看date是否同步
再启动zk集群
最后./start-hbase.sh启动hbase

使用hbase shell进入hbase的命令行窗口

使用命令创建一张表

create 'test1', {NAME=>'cf',VERSIONS=>3,COMPRESSION=>'gz'}

插入四条记录

put 'test1','rowkey1','cf:q1','r1-v1'
put 'test1','rowkey1','cf:q2','r1-v2'
put 'test1','rowkey2','cf:q1','r2-v1'
put 'test1','rowkey2','cf:q2','r2-v2'
put 'test1','rowkey2','cf:q3','r2-v3'

使用命令查看表数据

scan 'test1'

登录master的web管理界面   http://192.168.88.129:60010
 

 

Hmaster HA配置

只需要在conf下   vim  backup-masters

node1

记得分发一下

这里只选择了一台作为backup-masters,当master:60010挂掉,访问node1:60010

需注意:如果没有在ha创建表插入数据,改为ha,需要删除zk的节点再重启hbase,自动生成zk节点。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值