Hbase学习Hbase基础介绍
一、产生背景
自1970年以来,关系数据库用于数据存储和维护有关问题的解决方案。大数据的出现后,好多公司实现处理大数据并从中受益,并开始选择像Hadoop的解决方案。Hadoop使用分布式文件系统,用于存储大数据,并使用MapReduce来处理。Hadoop擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化数据的处理。
Hadoop的限制
Hadoop只能执行批量处理,并且只以顺序方式访问数据。这意味着必须搜索整个数据集,即使是最简单的搜索工作。当处理结果在另一个庞大的数据集,也是按顺序处理一个巨大的数据集。在这一点上,一个新的解决方案,需要访问数据中的任何点(随机访问)单元。
Hadoop随机存取数据库
应用程序,如HBase,Cassandra,CouchDB,Dynamo和 MongoDB 都是一些存储大量数据和 以随机方式访问数据的数据库。
总结:
1、海量数据量存储成为瓶颈,单台机器无法负载大量数据。
2、单台机器IO读写请求成为海量数据存储时候高并发大规模请求的瓶颈
3、随着数据规模越来越大,大量业务场景开始考虑数据存储横向水平扩展,使得存储服务可以增加/删除,而目前的关系型数据库更专注于一台机器
二、Hbase简介
Hbase是BigTable(源码使用Java编写)版本。是Apache Hadoop的数据库,是建立在HDFS之上,被设计用来提供高可靠性、高性能、、列存储、可伸缩、多版本的NoSQL的分布式数据存储系统,实现对大型数据的实时,随机的读写访问。
Hbase依赖于HDFS做底层的数据存储,BigTable依赖于Google GFS做数据存储
Hbase依赖于Mapreduce做数据计算,BigTable依赖于Google MapReduce做数据计算
HBase依赖于Zookeeper做服务协调,BigTable依赖Google Chubby做服务协调
三、关系型数据库和非关系型数据库的典型代表
NoSQL:Hbase、redis、Mongdb
RDBMS:mysql,oracle、sqlserver,db2
四、Hbase这个NOsql数据库的要点
1、它介于NoSQL和RDBMS之间,仅能通过主键(rowkey)和主键的range([startkey,endkey))来检索数据
2、Hbase查询数据功能很简单,不支持join等复杂操作
3、不支持复杂的事务,只支持行级事务(可以通过hive支持来实现多表join等复杂操作)
4、Hbase中支持的数据类型:Byte[] (底层所有数据的存储都是字节数组)
5、主要用来存储结构化数据和半结构化的松散数据。
6、列可以动态增加,并且列为空就不存储数据,节省存储空间
五、Hbase中的表特点
1、大:一个表可以有上十亿行,上白袜列
2、面向列:面向列(族)的存储和权限控制,列(簇)独立检索。
3、稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。
4、无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一 张表中不同的行可以有截然不同的列

六、Hbase表结构逻辑视图
初次接触HBase,可能看到以下描述会懵:“基于列存储”,“稀疏MAP”,“RowKey”,“ColumnFamily”。
其实没那么高深,我们需要分两步来理解HBase, 就能够理解为什么HBase能够“快速地”“分布式地”处理“大量数据”了。
1.内存结构
2.文件存储结构
七、名词概念
假如我们有如下一张表

1、Rowkey概念
Rowkey的概念和mysql中的主键是完全一样,Hbase使用Rowkey来唯一的区分某一行的数据。
由于Hbase只支持3中查询方式:
a、基于Rowkey的单行查询
b、基于Rowkey的范围扫描
c、全表扫描
因此,Rowkey对Hbase的性能影响非常大,Rowkey的设计就显得尤为的重要。设计的时候要兼顾基于Rowkey的单行查询也要键入Rowkey的范围扫描。rowkey 行键可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),最好是 16。在 HBase 内部,rowkey 保存为字节数组。HBase 会对表中的数据按照 rowkey 排序 (字典顺序)
Hbase学习Hbase基础介绍的更多相关文章
- HBase学习-HBase原理
1.系统架构 1.1 图解 从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemS ...
- HBase学习笔记-基础(一)
HBase版本:0.97 1.Get Gets实在Scan的基础上实现的. 2.联合查询(Join) HBase是否支持联合是一个网上常问问题.简单来说 : 不支持.至少不像传统RDBMS那样支持. ...
- 数据库中间件DBLE学习(一) 基础介绍和快速搭建
dble基本架构简介 dble是上海爱可生信息技术股份有限公司基于mysql的高可用扩展性的分布式中间件.江湖人送外号MyCat Plus.开源地址 我们首先来看架构图,外部应用通过NIO/AIO进行 ...
- python学习 day01 基础介绍
一.编程的目的 1.什么是语言?编程语言又为何? 语言是一种事物与另外一种事物沟通的介质.编程语言是程序员和计算机沟通的介质. 2.什么是编程? 程序员把自己想要计算机做的事用编程语言表达出来,编程的 ...
- HBase学习之路 (一)HBase基础介绍
产生背景 自 1970 年以来,关系数据库用于数据存储和维护有关问题的解决方案.大数据的出现后, 好多公司实现处理大数据并从中受益,并开始选择像 Hadoop 的解决方案.Hadoop 使用分 布式文 ...
- HBase学习系列
转自:http://www.aboutyun.com/thread-8391-1-1.html 问题导读: 1.hbase是什么? 2.hbase原理是什么? 3.hbase使用中会遇到什么问题? 4 ...
- HBase运维基础--元数据逆向修复原理
背景 鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据”的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等.总的来说,就是想更深层 ...
- HBase学习
记录HBase的学习过程.之后会陆续添加内容. 阅读hbase的博客,理解hbase是什么.推荐博文: 1,HBase原理,基础架构,基础概念 2,HBase超详细介绍 --------------- ...
- Hbase学习04
3.2.4 反向时间戳 反向扫描API HBASE-4811(https://issues.apache.org/jira/browse/HBASE-4811)实现了一个API来扫描一个表或范围内的一 ...
随机推荐
- pandas LabelEncoder方法,对离散值进行编码,并储存
# 3.离散值进行LabelEncoder #处理数据的三个步骤,去重,处理缺失值,离散值LabelEncoder from sklearn import preprocessingfrom skle ...
- Scrum 冲刺 第七篇
Scrum 冲刺 第七篇 每日会议照片 昨天已完成工作 队员 昨日完成任务 黄梓浩 初步完成app首页模块的搭建 黄清山 完成部分个人界面模块数据库的接口 邓富荣 完成部分个人界面接口 钟俊豪 完成部 ...
- 团队作业part2--需求规格说明书
需求规格说明书 一.目的 本说明书为了让用户尽快了解产品所含功能,描述用户对产品的期望与需求.明确软件开发的最终目的,使开发出来的软件能够更好的达到用户的需求.其作为用户和软件开发人员达成的技术协议书 ...
- 转:locality sensitive hashing
Motivation The task of finding nearest neighbours is very common. You can think of applications like ...
- OI知识点/得分技巧的归纳总结
网络流 拆点/拆边技巧 题目来源 bzoj1070 题目描述 同一时刻有\(N\)位车主带着他们的爱车来到了汽车维修中心.维修中心共有\(M\)位技术人员,不同的技术人员对不同 的车进行维修所用的时间 ...
- Codeforces Edu Round 61 A-C + F
A. Regular Bracket Sequence 显然,"\(()\)"不影响结果它是自我匹配的,可以把所有的\(((\)和\())\)都放在左边/右边,这样只要检查它们的数 ...
- GYM101889J Jumping frog
突然发现题刷累了写写题解还是满舒服的 题目大意: 给你一个只包含 \(R\) , \(P\) ,长度为 \(n\) 的字符串( \(3\le n\le 10^5\) ).你可以选择一个跳跃距离 \(l ...
- 在Nuxt中使用react-id-swiper封装公共的轮播图组件(移动端
首先就是引入swiper import Swiper from 'react-id-swiper': 一个轮播图首先要考虑到一种情况就是当只有一张图的时候是不是需要按轮播图来处理 一般情况下,一张图是 ...
- MySQL增强半同步的搭建实验,和一些参数的个人理解
关于参数理解,已补充实验,可以查看: rpl_semi_sync_master_wait_no_slave 参数研究实验 环境信息 role ip port hostname master 192.1 ...
- 恕我直言,你可能连 GitHub 搜索都不会用 - 如何精准搜索的神仙技巧
大家好,我是你们的 前端章鱼猫,一个不喜欢喵.又不喜欢吃鱼的超级猫 ~ 今天给大家带来的是 在 GitHub 上如何精准搜索的神仙技巧. [前端GitHub:https://github.com/bi ...