IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 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架构图?????

?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。?

如果有总结不到位的地方,大家可以评论留言,再次完善。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:22:42  更:2022-09-13 11:24:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:43:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码