hbase架构详解

这篇具有很好参考价值的文章主要介绍了hbase架构详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是Hbae(Hbase的介绍)?

        1、Hbase的原型是GoogleBigTable论文,受到该论文思想启发,目前作为hadoop的子项目来开发维护用来支持结构化的数据存储。

        2、Hbase是一个高可用、高性能、面向列、可伸缩的分布式存储系统。

二、Hbase的特性

1、海量存储:Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。

2、列式存储:这里的列式存储其实说的是列族存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。

3、极易扩展:

Hbase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HDFS)。
通过横向添加RegionSever的机器,进行水平扩展,提升Hbase上层的处理能力,提升Hbsae服务更多Region的能力。

4、高并发:由于目前大部分使用Hbase的架构,都是采用的廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,Hbase的单个IO延迟下降并不多。能获得高并发、低延迟的服务。

5、稀疏:稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

三、Hbase架构图详解

        

hbase架构,flink

hbase架构图​​​​​

 Hbase架构详解:
        0、Client:
提供访问hbase的接口

        1、Hmaster:处理Hregion的分配或转移。如果Hregion的数据量过大,Hmaster会对拆分后的Region重新分配RegionServer。(如果发现失效的HRegion,也会将失效的HRegion分配到正常的HRegionServer中)

        2、zookeper:存储hbase的原数据(meta表)

        3、HRegionServer:它是处理客户端的读写请求,负责与HDFS底层交互,是真正干活的节点。

        4、Hlog:在我们写数据时首先是写到内存,然而为了防止数据没写到内存,我们会写一份hloghdfs

        5、Hregion:它里边会有多个store,每个store相当于一个列族

        6、Store:相当于列族下边的列(当然一个列族下边可以有多个列)

        7、Memstore:数据首先会写到我们的Menstore里边(相当于一个内存可以设置它的大小以及阈值,当存满或者到达它的这个阀值,就会刷写到我们的硬盘上)

        8、StoreFile:当Memstore存满之后,剩余的刷写到硬盘(storefile、hflie这两个本质上是一个东西)在hbase中它叫storefile

        9、Hfile:在hdfs中它叫hfile 

Hbase架构总结:

        首先client客户端是数据进入hbase的接口,经过zookeper元数据分配数据所需要进入的regionserver,进入regionserver先经过hlog预写入hdfs中存储,regionserver管理者hmaster分配的region进入磁盘中如果memstore达到一定阀值切分成Hfile传入hdfsclient中进行小文件合并成大文件,最后传入hadoop  datenode中

        如果regionserver出现宕机会通过zookeeper向Hmaster请求重新创建一个Hregionserver将宕机的regionservr中的region分配给新建的regionserver中,还有一种情况就是region中的store的大小和数量达到一定阀值会分配出一个region分配给其他regionserver达到负载均衡的表现。

四、自定义hbase

public class HBaseSinkFunction extends RichSinkFunction<OrderGoodsWideEntity> {
    Connection connection = null;

    @Override
    public void open(Configuration parameters) throws Exception {
        super.open(parameters);
        org.apache.hadoop.conf.Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","hadoop101:2181,hadoop102:2181,hadoop103:2181");
        connection = ConnectionFactory.createConnection(conf);
    }

    @Override
    public void invoke(OrderGoodsWideEntity value, Context context) throws Exception {
        //获取核心操作对象
        Admin admin = (HBaseAdmin)connection.getAdmin();
        //获取操作表名
        Table table = connection.getTable(TableName.valueOf("orderDetail"));
        //向表中插入数据
        //输入参数遍历存入hbase
        //行键
        Put put = new Put(Bytes.toBytes(value.getOrgId()));
        
        //列族,列名,值
        put.addColumn(Bytes.toBytes("columns"),Bytes.toBytes("areaId"),Bytes.toBytes(value.getOrderId().toString()));
        table.put(put);
    }

    @Override
    public void close() throws Exception {
        super.close();
        connection.close();
    }
}

五、在我们大数据开发中为什么使用hbase存储数据? 

        首先hbase是支持OLAP(在线分析)操作的,并且hbase读取速度快,方便调用,做后边分析处理的一个数据存储框架,当然也有弊端,不支持复杂sql的查询,需要借助phoeinx。 

如果有总结不到位的地方,大家可以评论留言,再次完善。文章来源地址https://www.toymoban.com/news/detail-646411.html

到了这里,关于hbase架构详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HBase Shell操作&Flink写入HBase

    1)进入HBase客户端命令行 2)查看帮助命令 3)查看当前数据库中有哪些表 1)创建表 2)插入数据到表 3)扫描查看表数据 4)查看表结构 5)更新指定字段的数据 6)查看“指定行”或“指定列族:列”的数据 7)统计表数据行数 8)删除数据 9)清空表数据 10)删除表 11)变更

    2024年02月04日
    浏览(54)
  • Flink异步io关联Hbase

    2024年03月16日
    浏览(38)
  • 14_基于Flink将pulsar数据写入到HBase

    3.7.1.编写Flink完成数据写入到Hbase操作, 完成数据备份, 便于后续进行即席查询和离线分析 3.7.1.1.HBase基本介绍 hbase是基于Google发布bigTable论文产生一款软件, 是一款noSQL型数据, 不支持SQL. 不支持join的操作, 没有表关系, 不支持事务(多行事务),hbase是基于 HDFS的采用java 语言编写 查

    2024年02月13日
    浏览(33)
  • HBase基础知识(一):HBase简介、HBase数据模型与基本架构

    HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个 multi-dimensionalmap 。 1.2.1HBase逻辑结构 字典序:按位比较。 下图是一张表

    2024年02月03日
    浏览(38)
  • Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive

    Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建 下载 https://archive.apache.org/dist/  Mysql下载地址 Index of /MySQL/Downloads/ 我最终选择 Zookeeper3.7.1 +Hadoop3.3.5 + Spark-3.2.4 + Flink-1.16.1 + Kafka2.12-3.4.0 + HBase2.4.17 + Hive3.1.3  +JDK1.8.0_391  IP规划 IP hostname 192.168.1.5 node1 192.168.1.6 node

    2024年01月23日
    浏览(49)
  • HBase架构篇 - Hadoop家族的天之骄子HBase

    HBase 的数据存储在表中。表名是一个字符串。表由行和列组成。 HBase 的行由行键(rowkey)和 n 个列(column)组成。行键没有数据类型,可以看作是字节数组,类似于关系型数据库的主键索引,在整个 HBase 表中是唯一的,按照字母顺序排序。 HBase 的列族由多个列组成,相当于

    2023年04月20日
    浏览(33)
  • 1.3 HBase 基本架构

    架构角色: 1)Master 实现类为 HMaster,负责监控集群中所有的 RegionServer 实例。主要作用如下: (1)管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行 (2)监控 region 是否需要进行负载均衡,故障转移和 region 的拆分。 通过启动多个后台线程监控实现上述

    2024年02月04日
    浏览(44)
  • Hbase文档--架构体系

    阿丹:         基础概念了解之后了解目标知识的架构体系,就能事半功倍。         HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。         与FUJITSU Cliq等商用大数

    2024年02月11日
    浏览(27)
  • 【HBase】架构

    实现类为 HMaster。 负责监控集群中所有的 RegionServer 实例。 (1)管理元数据表格 hbase:meta,接收用户 对表格 创建修改删除的命令并执行 (2)监控 region 是否需要进行 负载均衡 , 故障转移 和 region 的 拆分 。 通过启动多个后台线程监控实现上述功能: 负载均衡器 周期性监

    2024年02月04日
    浏览(32)
  • HBase-架构与设计

    HBase是一个基于java的NoSQL分布式列存储数据库,主要用于存储非结构化和半结构化的松散数据。将Hadoop中的HDFS作为底层文件存储系统,来提供容错和可靠性,以及存储系统的拓展性。 HBase的设计思想来自Google的Bigtable论文,是分布式数据库的实现。HDFS是一个高可靠、高延迟的

    2024年02月05日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包