hbase 概念

在hbase里面有几个通俗的名称会经常出现

1)Hregion = region

2)Hregionserver = regionserver

3)Hmaster = master

4)Hmamstore = memstore

5)Hfile = storeFile

 

1、什么是hbase?

1)它是基于稀疏的、分布式的、持久化的、多维有序映射,它基于行健、列簇、时间戳建立索引

2)构建在hdfs之上的分布式列式键值存储系统,hbase内部管理的文件存储在hdfs中。

  

2、有什么特点?

1)不介意数据类型,允许动态的、灵活的数据模型,并不限制存储数据的种类。因此他可以自如的存储结构化和半结构化的数据。

2)它不要sql语音,不强调数据之间的关系

3)它不允许跨行的事物,可以在一行的某一列存储一个整数,而在另一行的同一列存储一个字符串

4)它被设计在一个服务器集群上运行,而不是单台服务器。这就意味着是一种强大的、可扩展的数据使用方式。

 

3、列式存储

列式存储的基础:对于特定的查询,不是所有的值都是必须的。

1)以列为单位聚合数据,然后将列值顺序的存入磁盘

2)数据类型一致,数据特征相似,更利于压缩

3)大量降低系统I/O

 

 

4、HBASE特性

1)容量巨大:单表可以有百亿行,百万列

2)面向列

3)稀疏性:空值不占用存储空间

4)扩展性:由hdfs决定,热扩展

5)高可用性:WAL和Replication机制;hdfs;zookeeper

6)共性能:LSM数据结构;Rowkey有序排列

7)无模式

8)数据多版本

9)数据类型单一

10)TTL

 

5、client

1)包含访问hbase的接口,并维护cache来加快对hbase的访问

2)通过rpc机制和master,region server通信

 

6、zookeeper

1)保证任何时候,集群中只有一个master

2)存储所有region的寻址入口

3)实时监控region server的上下线信息。并通知给master

4)存储hbase元数据信息

5)hbase中可以启动多个Hmaster,通过zookeeper的master election机制保证总有一个master运行

 

7、HMaster主要负责:table、region管理工作

1)管理用户对table的增删改查

2)管理regionserver的负载均衡,跳转region分布

3)在region分裂后,负责新region的分配

4)在regionserver死机后,负责失效regionserver上的region迁移

 

(由于master只维护表和region的元数据,而不参与表数据IO的过程,master下线仅导致所有元数据的修改被冻结(无法创建删除表,无法修改表的schema,无法进行region的负载均衡,无法处理region上下线,无法进行region的合并,唯一例外的是region的split可以正常进行,因为只有region server参与),表的数据读写还可以正常进行。

因此master下线短时间内对整个hbase集群没有影响。)

 

8、regionserver:主要负责响应用户I/O请求,向hdfs文件系统中读写数据

1)管理了一系列Hregion对象,每个Hregion对应了table中的region

2)Hregion由多个Hstore组成,每个Hstore对应了table中的一个column Family的存储

每个column Family其实就是一个集中的存储单位,简称Hstore

3)regionserver维护region,处理对这些region的IO请求

4)regionserver负责切分在运行过程中变得过大的region

5)regionserver提供行级锁

 

注:

1)Hregionserver:Hregion:Hstore = Column Family

2)Hstore:

- memStore:用户首先先写入MemStore。(flush操作)

- StoreFile:Hfile(compact合并,split操作)

3)hbase只有增加数据,所有更新和删除都是在compact过程中进行的。

4)用户写操作只要写入内存就可以立即返回,保证I/O高性能

5)同一台rs上的所有region共享相同的Hlog Files

6)每个update(或者说edit)都会被写到log,当通知客户端成功后,rs把数据再加载到内存中。

 

9、region是什么?

1)region按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会等分两个新的region,只会就会越来越多。

2)本质上是以行键排序的连续存储的区间

3)region最佳大小:1GB~2GB

4)regionserver:10~1000个region

5)不同的region分布到不同regionserver上

6)每个Hregion保存某段连续的数据,从开始主键(startRow)到结束主键(endRow),通过Hregion从Hadoop的分布式文件系统上数据

 

region虽然是分布存储的最小单位,但并不是存储的最小单位

1)一个region由一个或者多个store组成,每个store保存一个 columns family

2)每个store又由一个memstore和0个至多个storeFile组成

3)memstore存储在内存中,storeFile存储在hdfs上

 

 

10、Hstore是什么?

Hstore:Hstore存储是Hbase存储的核心,由memstore和storeFile组成。

1)Hmemcache:内存中的缓存,保存着最近更新的数据,如果Hmemcache没有数据,将从hstores获取磁盘上的数据,每个列簇会有一个hstore集合,每个集合包含多个Hstorefiles文件(b+数结构)

2)Hregion定期调用flushcache()缓存里的内容写入到文件中,每次调用产生一个新的文件Hstorefile文件,从一个hstore或数据会访问所有的Hstotefile,很耗时,hstore.compact可以完成小文件到达文件的合并

 

11、Hlog是什么?

磁盘上的操作记录文件,记录这所有的更新操作,数据写入Hlog后,commit()调用才会返回给客户端。

数据的更新操作最先被记录在Hmemcache和Hlog中

 

12、Row key

行键,table的主键,Table中的记录按照Row key排序。类型为Byte array

1)不宜过长

2)分布均匀

 

13、Column Family

列族,table水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成

 

14、Cloumn

列 格式为:familyName:columnName

列名称是编码在cell中的

不同的cell可以拥有不同的列

 

15、Version Number

版本号。默认值是时间戳。类型为long

 

16、Value(Cell)

具体的值。类型为Byte array

 

转载于:https://www.cnblogs.com/gentlemanhai/p/10354550.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

beta冲刺第三天

团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504陈顺兴 031602505张胜男 031602540廖钰萍 031602323雷光游 031602319吴志鸿 0316206341.昨天的困难 陈顺兴:理解别人的代码 廖钰萍: 吴志鸿:无 雷光游: …

模块化

我那进了"模块化研究"小组.所以嘞.研究模块化以及如何让项目的模块化更加合理和高效是我们小组的主要目的.首先,在实行模块化之前,得先巩固模块化开发的理论基础,因为理论是实践的基础。只有这样,在过程中理论与实践相结合,才有可能达到最满意…

1566:基础练习 十六进制转八进制

题目地址&#xff1a;https://acmore.cc/problem/LOCAL/1566 1 #include <iostream>2 #include <string>3 4 using namespace std;5 6 string HexToBin(string s) //16进制转2进制7 {8 string str "";9 for (int i 0; i < s.size(); i) 10…

java命令--jmap命令使用(查找内存泄漏对象)

转自&#xff1a;https://www.cnblogs.com/kongzhongqijing/articles/3621163.html jdk安装后会自带一些小工具&#xff0c;jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。 jmap命令可以获得运行…

tr069相关协议说明

截图自easycwmp官网&#xff1a;http://easycwmp.org/转载于:https://www.cnblogs.com/kiss-passion/p/10362029.html

Beta 冲刺(6/7)

队名 火箭少男100组长博客 林燊大哥作业博客 Beta 冲鸭鸭鸭&#xff01;成员冲刺阶段情况 林燊&#xff08;组长&#xff09; 过去两天完成了哪些任务 协调组内工作最终测试文稿编写展示GitHub当日代码/文档签入记录(组内共享)接下来的计划 协助开发组完成标签制作展示视频制作…

Android Bluetooth BLE相关开发资源汇总

Android开启蓝牙开关 转载自Android&#xff1a;Bluetooth 的打开和关闭 检查系统蓝牙是否开启 BluetoothManager bluetoothManager (BluetoothManager) this. getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter mBluetoothAdapter bluetoothManager.getAdapt…

git常用命令及冲突解决

2019独角兽企业重金招聘Python工程师标准>>> git常用命令 git config --global user.name chenhongjiang git config --global user.email 123qq.com git init 建立厂库 git status 查看状态 git add . 添加当前目录 git add a.php 添加文件…

从零开始学习PYTHON3讲义(二)把Python当做计算器

《从零开始PYTHON3》第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境&#xff0c;macOS/Linux都可以在命令行执行idle3。Windows则从开始菜单中去寻找IDLE程序的图标。 上一讲我们还见到了Python的两种工作模式&#xff0c;交互模式和程序模式。 通常在一个大型的…

创业者谈:畏惧失败,但也要拥抱失败

摘要&#xff1a;本文作者为Paydirt创始人Tristan Gamilis&#xff0c;他在文中分享了如何面对创业过程中的失败。作为一个创业者&#xff0c;开始的时候并非全才&#xff0c;很多知识都是经历了创业中的失败&#xff0c;摸爬滚打之后才学会的。所以&#xff0c;我们在创业过程…

redis 资料

redis是什么: Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. redis是开源,BSD许可,高级的key-value存储系统. 可以用来存储字…

UnaryOperator函数式接口

2019独角兽企业重金招聘Python工程师标准>>> 这是一个函数式接口&#xff0c;因此可以用作lambda表达式或方法引用的赋值目标。 可以看到UnaryOperator<T>继承了Function<T,T>接口&#xff0c;这里可是两个T,T,还增加了static修饰的identity()方法。 然…

linux--命令rcp和scp

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 rcp代表“remote file copy”&#xff08;远程文件拷贝&#xff09;。该命令用于在计算机之间拷贝文件。rcp命令有两种格式。第一种格式…

Nokia落寞身影下 三星成为全球最大手机厂商

摘要&#xff1a;在诺基亚统治全球最大手机厂商宝座长达14年后&#xff0c;三星今年首次取代诺基亚&#xff0c;成为全球最大手机厂商。据IHS iSuppli的数据显示&#xff0c;三星预计今年手机出货量将占全球29&#xff05;&#xff0c;而落寞的诺基亚市场份额将下降到24&#x…

Django:学习笔记(2)——创建第一个应用

Django&#xff1a;学习笔记(2)——创建第一个应用 创建应用 在 Django 中&#xff0c;每一个应用都是一个 Python 包&#xff0c;并且遵循着相同的约定。Django 自带一个工具&#xff0c;可以帮你生成应用的基础目录结构&#xff0c;这样你就能专心写代码&#xff0c;而不是创…

dubbo源码解析(十)远程通信——Exchange层

远程通讯——Exchange层 目标&#xff1a;介绍Exchange层的相关设计和逻辑、介绍dubbo-remoting-api中的exchange包内的源码解析。前言 上一篇文章我讲的是dubbo框架设计中Transport层&#xff0c;这篇文章我要讲的是它的上一层Exchange层&#xff0c;也就是信息交换层。官方文…

为何获得风险投资的公司多数倒闭了?

北京时间12月12日消息&#xff0c;据国外媒体报道&#xff0c;哈佛商学院的高级讲师施克哈尔高希(Shikhar Ghosh)指出&#xff0c;风险投资领域的失败案例比媒体报道的要多得多。 高希的研究表明&#xff0c;在风险资本支持的公司之中&#xff0c;有75%的公司从未向投资者返回过…

苹果前CEO斯卡利变身创业导师:欲寻下个乔布斯

乔布斯和约翰斯卡利 导语&#xff1a;国外媒体今天撰文称&#xff0c;苹果前CEO约翰斯卡利(John Sculley)虽然早已离开苹果&#xff0c;但仍然活跃在科技行业。他现在将目光转向了医疗科技领域&#xff0c;希望从中挖掘出下一个乔布斯。 以下为文章全文&#xff1a; 下一个乔布…

Linux grep命令、Linux cd命令、Linux pwd命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Linux grep命令用于查找文件里符合条件的字符串。 grep指令用于查找内容包含指定的范本样式的文件&#xff0c;如果发现某文件的内容符…

历时四年,给Google提交的Android Framework Bug终于被Fixed了

历时四年&#xff0c;Google终于修复了一个我发现的Android Framework Bug 2014年在做一个Android终端设备开发过程中&#xff0c;发现了一个Android Framework层的Bug&#xff0c;给Google提交了issue和解决方案&#xff0c;和外界传言一致Google一般不太在意个人开发者提交的…