分布式NoSQL列存储数据库Hbase(⼀)Hbase的功能与应⽤场景、基本设计
思想
⽂章⽬录
分布式NoSQL列存储数据库Hbase(⼀)
知识点01:回顾
1. 离线项⽬为例
1. 数据⽣成:⽤户访问咨询数据、意向⽤户报名信息、考勤信息
2. 数据采集
1. Flume:实时数据采集:采集⽂件或者⽹络端⼝
2. Sqoop:离线数据同步:采集数据库的数据
3. 数据存储
1. HDFS:分布式离线⽂件存储系统
2. Hive:离线数据仓库
1. 将HDFS上的⽂件映射成了表的结构,让⽤户可以通过数据库和表的形式来管理⼤数据
4. 数据计算
1. MapReduce+YARN:分布式离线数据计算
2. Hive:通过SQL进⾏分布式计算
1. 将SQL语句转换为MapReduce程序,提交给YARN运⾏
5. 数据应⽤:通过对数据进⾏分析
1. 提⾼转化率:访问与咨询转化率、报名转换率
2. 考勤分析:通过考勤分析来把握所有⼈学习的情况
2. 离线与实时
1. 离线:数据从产⽣到最后被使⽤,时效性⽐较低,时间⽐较长
2. 实时:数据从产⽣到最后被使⽤,时效性⽐较⾼,时间⽐较短
3. ⽅向:所有数据的价值会随着时间的流逝,价值会越来越低,希望所有数据都能被实时的计算以及处理
4. 实现实时:所有环节都必须是实时环节
1. 数据⽣成:实时的
2. 数据采集:实时的,Flume、Canal……
3. 数据存储:实时的,Hbase、Kafka、Redis……
4. 数据计算:实时的,Spark、Flink……
5. 数据应⽤:实时应⽤:风控系统、实时推荐、精准分析
3. 学习知识的逻辑
1. step1:先了解基本的功能与应⽤场景
2. step2:基本的使⽤
3. step3:深⼊了解原理
知识点02:⽬标
1. Hbase的功能与应⽤场景、基本设计思想【重点掌握】
1. 这玩意有什么⽤?解决什么问题?
2. 这玩意为什么能实现这样的功能?
3. 什么时候需要⽤这个玩意?
4. 这个玩意中的⼀些特殊的概念
2. 搭建Hbase分布式集环境
1. 分布式架构【重点】
知识点03:HBASE诞⽣
1、问题
随着⼤数据的发展,⼤数据的应⽤场景越来越多,有了实时性的需求
HDFS、MapReduce:都只能实现离线的处理以及计算
想做实时推荐
实时的采集⽤户的数据,实时分析,根据⽤户画像给⽤户推荐合适的商品
实时采集:Flume
实时存储:存储读写的性能在毫秒级别
实时计算:计算处理的性能在毫秒级别
2、需求
需要⼀项技术能实现⼤量的数据实时数据读写
HDFS已经满⾜不了:HDFS解决离线⼤数据存储读写
设计:为了满⾜怎么存储⼤数据的问题
3、解决
⾕歌的三篇论⽂
GFS:基于⽂件系统的离线⼤数据存储平台HDFS
MapReduce:基于离线⼤数据批处理分布式计算平台
BigTable:分布式实时随机读写的NoSQL数据库【Chubby】
Hbase + Zookeeper
设计:怎么⾼效的进⾏⼤数据读写存储的问题
4、总结
Hbase能实现基于海量数据的随机实时的数据存储及读写
与MySQL区别:Hbase实现⼤数据存储
与HDFS区别:Hbase性能更好,更快
知识点04:Hbase功能及应⽤场景
redis是nosql数据库吗Apache HBase™ is the Hadoop database, a distributed, scalable, big data store.
#分布式可扩展⼤数据存储数据库
Use Apache HBase™ when you need random, realtime read/write access to your Big Data.
#随机的实时的⼤数据访问
This project's goal is the hosting of very large tables -- billions of rows X millions of columns --
#存储⾮常⼤的数据表
atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System , Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.
1、功能
Hbase是⼀个分布式的NoSQL数据库,能实现随机实时的⼤量数据的读写
⼤数据存储:分布式 + HDFS
实时数据读写
2、应⽤场景
电商:实时推荐
⾦融:实时风控、实时征信统计
交通:实时车辆监控
游戏:实时记录所有操作
……
知识点05:HBASE设计思想
1、问题
对于计算机⽽⾔,数据的存储只会在两个地⽅
内存:读写⽐较快
硬盘:读写相对慢⼀些
为什么Hbase可以实现⼤量数据的实时的读写?
问题1:为什么Hbase能存储⼤量数据?
问题2:为什么Hbase能读写很快?
2、需求
需求1:必须实现分布式存储,利⽤多台机器的硬件资源从逻辑上整合为⼀个整体
类似于HDFS设计思想
需求2:必须实现将数据存储在内存中,读写速度才能很快
为什么HDFS也是分布式,但是慢:HDFS所有的数据是存储在磁盘中
3、实现
实现1:Hbase做了分布式结构,利⽤多台机器组合成⼀个整体,多台机器的内存和磁盘进⾏逻辑合并了实现2:Hbase优先将数据写⼊内存,读取数据时,如果数据在内存中,可以被直接读取
新的问题:内存的空间是⽐较⼩的,能存储的数据量不⼤,违背了Hbase能存储⼤数据吗?
内存的特点:内存容量⼩、数据易丢失、读写速度快
磁盘的特点:容量空间⼤、数据相对安全、速度相对慢
Hbase如何能实现容量⼤和速度快的问题?
设计思想:冷热数据分离,实时计算中,对当前最新的数据进⾏读取处理应⽤
冷:⼤概率不会被⽤到的数据
在实时架构中,已经产⽣很久的数据
热:⼤概率会被⽤到的数据
在实时架构中,刚产⽣的数据
解决:Hbase将数据写⼊内存中,如果内存中存储的数据满了,就将内存的数据写⼊磁盘热:写内存,⼤概率的情况下,可以直接从内存中读取
冷:将内存中产⽣很久的数据写⼊磁盘中
4、总结
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论