一、HBase能做什么及企业海量数据实时查询的需求
1、HBase能做什么
海量数据的存储
海量数据的查询
比如:移动、联通,每月的通话详单查询
京东、一号店等电商订单存储
2、企业海量数据查询
1)项目需求功能描述
*海量数据
*实时果询(准实时查询)
*场景
交通数据、账单数据(话费账单、银行交易账单)
游戏数据、电商交易数据
2)数据采集
*Sqoop(Flume)
*Kettle
*Program(JDBC与Java API)
3、注意:HBase的重点是运维
HBase是在Hadoop之上的
HBase可以与Hive进行集成
HBase的数据存储在HDFS上
HBase依赖于Zookeeper进行协作服务
可以使用MapReduce向HBase中灌入数据,也包括使用Sqoop和Flume
二、HBase架构设计及表的存储设计
table
columnfamily:column01,column02......
每条数据有唯一的标识符:
rowkey,相当于关系型数据库中的主键
面向列的数据库
插入数据的方式:
Cell(单元格)=>rowkey+Columnfamily+column+timestamp:value
类比:Person
basic
name,age,birthday,sex,tel
job
job1
job2
edu
小学
中学
大学
三、HBase版本及数据存储模型讲解
思考:
HBase表的数据可以快速查询,关键点在于rowkey的设计。为什么是这样呢?
1、Data Modeling数据建模
1)Row Key
*Byte array
*表中每条记录的“主键”
*方便快速查找
2)Column Family
*拥有一个名称(string)
*包含一个或者多个相关列
3)Column
*属于某一个Column family
*包含在某一列中,
familyName:columnName
四、HBase部署架构及安装部署启动讲解
作业:
看看在hdfs目录下/hbase中各个目录存储的含义
五、HBase Shell基本使用(创建表、对数据CRUD操作)
./bin/hbase shell
hbase version
help
list
help 'create'
describe 'user'
在HBase中,数据查询有三种方式:
*依据rowkey查询,最快的:get
*范围查询:scan range
scan 'user',{COLUMNS=>['info:name','info:age']}
scan 'user',{STARTROW=>'10002'}
*全表扫描:scan
六、HBase表的物理模型讲解
1、Table中的所有行都按照row key的字典序排列
2、Table在行的方向上分割为多个Region
3、Region是按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会分为两个新的region,之后会有越来越多的region。
4、Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上。
5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。
*Region由一个或者多个Store组成,每个Store保存一个columns family
*每个Store又由一个memStore和0至多个StoreFile组成。
*memStore存储在内存中,StoreFile存储在HDFS上。
===========================================
HBase数据写入流程
put ->cell
*0)WAL(预写日志)-> HDFS,put添加数据的时候,先往WAL中写一份,再往mesStore中写一份。
*1)memStore,将memStore中的数据达到一定阀值时,会spill(溢写)到StoreFile中。
*2)StoreFile ->HDFS
七、回顾HBase功能、架构和设计
1、HBase的功能
*Hadoop数据库:存储、检索(查询)数据
*与RDBMS相比
*海量数据:数据条目数达到上亿
*检索的速度:准实时,秒级别
*基于HDFS
HDFS的优势:数据安全性、普通商用PC Server
八、HBase中表的Region
1、HBase是列式存储的数据库,NOSQL数据库,多版本。
1)默认情况下,创建一张表时,会给一张表创建一个Region,Region中包含startkey和endkey。
2)数据检索三种方式:
*get rowkey
*scan range -->使用的最多
*scan 全表扫描 -->使用较少
1、HBase能做什么
海量数据的存储
海量数据的查询
比如:移动、联通,每月的通话详单查询
京东、一号店等电商订单存储
2、企业海量数据查询
1)项目需求功能描述
*海量数据
*实时果询(准实时查询)
*场景
交通数据、账单数据(话费账单、银行交易账单)
游戏数据、电商交易数据
2)数据采集
*Sqoop(Flume)
*Kettle
*Program(JDBC与Java API)
3、注意:HBase的重点是运维
HBase是在Hadoop之上的
HBase可以与Hive进行集成
HBase的数据存储在HDFS上
HBase依赖于Zookeeper进行协作服务
可以使用MapReduce向HBase中灌入数据,也包括使用Sqoop和Flume
二、HBase架构设计及表的存储设计
table
columnfamily:column01,column02......
每条数据有唯一的标识符:
rowkey,相当于关系型数据库中的主键
面向列的数据库
插入数据的方式:
Cell(单元格)=>rowkey+Columnfamily+column+timestamp:value
类比:Person
basic
name,age,birthday,sex,tel
job
job1
job2
edu
小学
中学
大学
三、HBase版本及数据存储模型讲解
思考:
HBase表的数据可以快速查询,关键点在于rowkey的设计。为什么是这样呢?
1、Data Modeling数据建模
1)Row Key
*Byte array
*表中每条记录的“主键”
*方便快速查找
2)Column Family
*拥有一个名称(string)
*包含一个或者多个相关列
3)Column
*属于某一个Column family
*包含在某一列中,
familyName:columnName
四、HBase部署架构及安装部署启动讲解
作业:
看看在hdfs目录下/hbase中各个目录存储的含义
五、HBase Shell基本使用(创建表、对数据CRUD操作)
./bin/hbase shell
hbase version
help
list
help 'create'
describe 'user'
在HBase中,数据查询有三种方式:
*依据rowkey查询,最快的:get
*范围查询:scan range
scan 'user',{COLUMNS=>['info:name','info:age']}
scan 'user',{STARTROW=>'10002'}
*全表扫描:scan
六、HBase表的物理模型讲解
1、Table中的所有行都按照row key的字典序排列
2、Table在行的方向上分割为多个Region
3、Region是按大小分割的,每个表开始只有一个region,随着数据增多,region不断增大,当增大到一个阀值的时候,region就会分为两个新的region,之后会有越来越多的region。
4、Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上。
5、Region虽然是分布式存储的最小单元,但并不是存储的最小单元。
*Region由一个或者多个Store组成,每个Store保存一个columns family
*每个Store又由一个memStore和0至多个StoreFile组成。
*memStore存储在内存中,StoreFile存储在HDFS上。
===========================================
HBase数据写入流程
put ->cell
*0)WAL(预写日志)-> HDFS,put添加数据的时候,先往WAL中写一份,再往mesStore中写一份。
*1)memStore,将memStore中的数据达到一定阀值时,会spill(溢写)到StoreFile中。
*2)StoreFile ->HDFS
七、回顾HBase功能、架构和设计
1、HBase的功能
*Hadoop数据库:存储、检索(查询)数据
*与RDBMS相比
*海量数据:数据条目数达到上亿
*检索的速度:准实时,秒级别
*基于HDFS
HDFS的优势:数据安全性、普通商用PC Server
八、HBase中表的Region
1、HBase是列式存储的数据库,NOSQL数据库,多版本。
1)默认情况下,创建一张表时,会给一张表创建一个Region,Region中包含startkey和endkey。
2)数据检索三种方式:
*get rowkey
*scan range -->使用的最多
*scan 全表扫描 -->使用较少