Hbase 介绍

Hbase 简介

        Hbase 是一个开源非关系型分布式数据库,运用于HDFS文件系统之上,可以容错地存储海量稀疏的数据。Hbase是一个高可靠高性能面向列可伸缩实时读写的分布式数据库,主要用来存储非结构化和半结构化的松散数据 

        Hbase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。

重点:

Hbase 是基于存储的,主要用来存储非结构化和半结构化的松散数据,适合大数据的实时查询;

利用HDFS作可靠的底层文件存储系统

利用MapReduce高性能的处理Hbase中的海量数据

利用Zookeeper作为其分布式协同服务稳定服务Failover(故障转移)机制

Hbase 特点

1. Hbase 有四个维度来确定某个具体的值,行间,列族,列名 ,时间戳

2. 强一致性

3. 多维稀疏列表

4. 稀疏多维排序map

        BigTable 本质上是一个Map结构数据库,Hbase亦然,也是由一系列的KV构成的。然而Hbase这个Map系统却有很多的限定词--稀疏的分布式的排序的持久的多维的。Hbase Map和普通的Map 不一样,Hbase Map的Key是复合键,由rowKey,column family,qualif ier,type 以及timestamp组成,value即为cell的值。

        下面我们来介绍一下 多维、稀疏、排序等关键词:

          (1)多维:这个特征比较容易理解。Hbase中Map与普通的Map最大的不同在于,key是一个复合数据结构,由多维元素构成,包括rowkey,columnfamily,qualifier,type以及timestamp

 

          (2)稀疏:稀疏性是Hbase一个突出的特点。从上面这个图可以看出一行上是有空值。在其他的数据库中,会对这些空值进行null的填充,而对于Hbase,空值是不需要进行任何填充。这个特性很重要,因为Hbase的理论上是可以无限扩展的,对于成百万列的表来说,进行填充null的策略,势必会导致造成大量空间浪费。因此稀疏性是Hbase的可以无限拓展重要条件

          (3)排序:构成Hbase的KV在同一个文件中都是有序的,但规则并不是仅仅按照rowkey排序,而是按照KV中的key进行排序--先比较rowkey小的在前,rowkey相同在比较column,即column family:qualifier小在前column还相同,再比较timestamp,即版本信息,timestamp的排在前面

          (4)分布式:很容易理解,构成Hbase的所有Map并不集中在某台机器上,而是分布整个集群中。

5. HDFS压缩存储

6. 自动水平扩展

7.服务器自动调整平衡

Hbase 架构各个角色的功能

一.Client

        Client包含了访问Hbase的接口,另外Client还维护了对应的 cache来加速Hbase的访问,比如cache的.META.元数据信息。

二.Zookeeper

        Hbase通过Zookeeper来做master高可用,regionServer的监控,元数据的入口以及集群

配置的维护。具体如下

                1.通过Zookeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务;

                2.通过Zookeeper来监控RegionServer的状态,当RegionServer有异常的时候,通过回调的形式通知Master RegionServer上下限的信息;

                3.通过Zookeeper存储元数据的统一入口地址;

三.Hmaster

        master结点主要职责如下:

                1.为RegionServer分配Region

                2.管理整个集群的负载均衡

                3.管理集群的元数据信息

                4.当发现失效的Region,并将失效的Region分配到正常的RegionServer

                5.放RegionServer失效的时候,协对应的Hlog进行拆分

四.HregionServer

        HregionServer直接对接用户的读写请求,“干活”节点。功能如下:

                1.管理master为其分配的Region

                2.处理来自客户端的读写请求

                3.负责和底层HDFS交换,存储数据到HDFS

                4.负责Region变大以后的拆分

                5.负责Storefile的合并工作

五.HDFS

        HDFS为Hbase提供最终的底层存储服务,同时提供了Hbase高可用,功能如下:

                1.提供元数据和表数据的底层分布式存储服务

                2.数据多副本,保证的高可靠和高可用性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9390.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT中文在线官网-如何与chat GPT对话

怎么下载ChatGPT中文版 ChatGPT是一种基于Transformer架构的自然语言处理技术,其中包含了多个预训练的中文语言模型。这些中文ChatGPT模型大多数发布在Github上,可以通过Github的源码库来下载并使用,包括以下几种方式: 下载预训练…

高并发写场景:库存扣减

在设计商品的库存扣减逻辑时&#xff0c;可能一开始想到的(伪)代码是&#xff1a; <?php /*** 商品库存扣减** param int $skuId 商品ID* param int $num 库存扣减数量** return bool 扣减成功返回true&#xff0c;失败返回false*/ function stock_decr($skuId, $num) {…

Go是一门面向对象编程语言吗

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"&#xff01; 作者&#xff1a;tonybai|慕课网讲师 Go语言已经开源13年了&#xff0c;在近期TIOBE发布的2023年3月份的编程语言排行榜中&#xff0c;…

【hello Linux】Linux基本指令(下)

目录 1. more 指令&#xff1a;分批查看文件 1.1 more -n 文件名&#xff1a;查看文件前 n 行 1.2 more 文件名&#xff1a;屏幕输满 补充指令&#xff1a; 2. less 指令 2.1 less -N 文件名 2.2 /字符串&#xff1a;向下搜索“字符串”的功能 3. head 指令 3.1 head 文件名 3…

4.Java逻辑控制语句

Java逻辑控制语句 在实际生活中&#xff0c;我们的生活不是一成不变的&#xff0c;很多时候需要我们去选择&#xff0c;大到人生的十字路口&#xff0c;小到今天晚上吃什么&#xff0c;选择无处不在。小的选择决定了我们一件小事的走向&#xff0c;大的选择可能会改变我们人生…

基于多目标粒子群优化算法的计及光伏波动性的主动配电网有功无功协调优化(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JavaScript -- 对象

1. 概念 对象是 JavaScript 数据类型的一种&#xff0c;可以理解为是一种无序的数据集合 2. 对象的使用 2.1 对象的声明 let 对象名 {} let 对象名 new Object() 2.2 属性和方法 数据描述性的信息称为属性&#xff0c;如人的姓名、身高、年龄、性别等&#xff0c;一般是…

蓝桥杯之贪心

蓝桥杯之贪心1055.股票买卖II104.货仓选址AcWing112.雷达设备1235.付账问题1239.乘积最大K是奇数&#xff0c;需要转化为K是偶数的情况&#xff0c;于是先取一个数&#xff0c;为了使得结果最大&#xff0c;取最大的数&#xff08;正数的话绝对值最大&#xff0c;负数的话(K是奇…

java版工程项目管理系统源码 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

托福高频真词List12 // 附托福TPO阅读真题

目录 4.5单词 生词 熟词 真题 4.5单词 生词 irreversiblepermanentadj.无法挽回的&#xff0c;永久的manipulateskillfully usedhandlev.操控monumentalenormousgreat and significantadj.极大的&#x1f9f8;retardslowv.放缓&#x1f9f8;subsistencesurvivaln.生存 wit…

Redis应用问题及解决

目录 一.缓存穿透 1.1 问题描述 1.2 解决方案 二.缓存击穿 2.1 问题描述 2.2 解决方案 三.缓存雪崩 3.1 问题描述 3.2 解决方案 当数据库压力变大&#xff0c;导致服务访问数据库响应变慢&#xff0c;导致服务的压力变大&#xff0c;最终可能导致服务宕机。 一.缓存穿透 1.1 …

【数据结构】栈与队列经典oj题

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

[Jenkins自动化] 实现远端linux自动化部署方式(上篇)

目录 本篇文章简介: 简单易上手, 轻松实现jenkins实现自动化部署(上) 1. 安装jenkins方式 -> 1.1 windows版本 --->1.1.1 直接安装 修改安装路径 设置端口号 9000为例 ---> 1.1.2 创建工作空间即可 (起名为pzy) -> 1.2 linux版本(暂无) -> 1.3 docker版…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

redis基础总结-常用命令

redis常用指令3. 常用指令3.1 key 操作分析3.1.1 key应该设计哪些操作&#xff1f;3.1.2 key 基本操作3.1.3 key 扩展操作&#xff08;时效性控制&#xff09;3.1.4 key 扩展操作&#xff08;查询模式&#xff09;3.2 数据库指令3.2.1 key 的重复问题3.2.2 解决方案3.2.3 数据库…

Linux Shell 实现一键部署Redis6

redis 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 redis 参考 redis下载RedisDesktopManagerd…

ThreadPoolExecutor获取原始异常

ThreadPoolExecutor作用 ThreadPoolTaskExecutor是Spring框架提供的一个线程池实现&#xff0c;它是基于Java的ThreadPoolExecutor实现的。ThreadPoolTaskExecutor可以管理线程池中的线程&#xff0c;以满足多线程并发执行任务的需要。 FutureTask作用 FutureTask的主要作用…

SpringAMQP

SpringAMQP3.SpringAMQP3.1.Basic Queue 简单队列模型3.1.1.消息发送3.1.2.消息接收3.1.3.测试3.2.WorkQueue3.2.1.消息发送3.2.2.消息接收3.2.3.测试3.2.4.能者多劳3.2.5.总结3.3.发布/订阅3.4.Fanout3.4.1.声明队列和交换机3.4.2.消息发送3.4.3.消息接收3.4.4.总结3.5.Direct…

docker

1.docker安装 1.安装docker 2.配置docker加速器 3.docker的基本目录 /etc/docker/ docker的认证目录 /var/lib/docker/ docker的应用目录 2.docker容器 docker image pull nginx docker container stop nginx docker container rm $(docker container ps -aq) #q: --quiet …

代码随想录-62-530. 二叉搜索树的最小绝对差

目录前言题目1.二叉搜索树中序遍历特性介绍&#xff08;并且使用一个指针始终指向前一个&#xff09;全局变量2. 本题思路分析&#xff1a;&#xff08;中序遍历&#xff09;3. 算法实现4. 算法坑点前言 我在刷卡哥的“代码随想录”&#xff0c;自己的总结笔记均会放在“算法刷…