HBASE应⽤场景

HBASE应⽤场景
1、⽤户画像
⽐如⼤型的视频⽹站,电商平台产⽣的⽤户点击⾏为、浏览⾏为等等存储在HBase中为后续的智能推荐做数据⽀撑。
2、消息/订单存储
这个场景主要应⽤在电商平台,因为HBase提供了⼀个低延时、⾼并发的访问能⼒
3、对象存储
这⾥的对象存储实际是中等对象存储,是对HDFS存储⽂件的⼀个缓冲过度,因为如果我们⼤量的1M或2M这种⼩⽂件直接存储在HDFS上,会对NAMENODE造成元数据维护的压⼒,所以在HBase中可以很好的做过度合并后在持久化到HDFS上。HBase提供了中等对现象的存储能⼒,中等对象的⼤⼩范围在100k⾄10M之间。
4、时序数据
这⾥的时序数据是指随着时间⽽变化的数据,⽐如速度的展⽰,天⽓、温度、风速、车流量等等
5、Cube分析(KyLin)
通过KyLin将Hive或kafka中的数据,来构建Cube,这些Cube会存储在HBase中,以供其他的应⽤或其他的系统做实时查询或实时展⽰。
6、Feeds流
这个场景主要是应⽤在抖⾳、或其他⼩视频系统中,可以把Feeds流理解为⼀种内容聚合器,它可以帮助⽤户实时的获取最新的订阅源内容。
作者:机灵⿁⿁
来源:简书
⼀、Hbase能做什么?

  1. 海量数据存储:
    上百亿⾏ x 上百万列
    并没有列的限制
    当表⾮常⼤的时候才能发挥这个作⽤, 最多百万⾏的话,没有必要放⼊hbase中
  2. 准实时查询:
    百亿⾏ x 百万列,在百毫秒以内
    ⼆、Hbase在实际场景中的应⽤:
  3. 交通⽅⾯:
    船舶GPS信息,全长江的船舶GPS信息,每天有1千万左右的数据存储。
  4. ⾦融⽅⾯:
    消费信息,贷款信息,信⽤卡还款信息等
  5. 电商:
    淘宝的交易信息等,物流信息,浏览信息等
  6. 移动:
    通话信息等,都是基于HBase的存储。
    Hbase的特点:
  7. 容量⼤:
    传统关系型数据库,单表不会超过五百万,超过要做分表分库,不会超过30列
    Hbase单表可以有百亿⾏、百万列,数据矩阵横向和纵向两个维度所⽀持的数据量级都⾮常具有弹性
  8. ⾯向列:
    ⾯向列的存储和权限控制,并⽀持独⽴检索,可以动态增加列,即,可单独对列进⾏各⽅⾯的操作
    列式存储,其数据在表中是按照某列存储的,这样在查询只需要少数⼏个字段的时候,能⼤⼤减少读取的数量
  9. 多版本:
    Hbase的每⼀个列的数据存储有多个Version,⽐如住址列,可能有多个变更,所以该列可以有多个version
  10. 稀疏性:
    为空的列并不占⽤存储空间,表可以设计的⾮常稀疏。
    不必像关系型数据库那样需要预先知道所有列名然后再进⾏null填充
  11. 拓展性:
    底层依赖HDFS,当磁盘空间不⾜的时候,只需要动态增加datanode节点服务(机器)就可以了
  12. ⾼可靠性:
    WAL机制,保证数据写⼊的时候不会因为集群异常⽽导致写⼊数据丢失
    Replication机制,保证了在集群出现严重的问题时候,数据不会发⽣丢失或者损坏
    Hbase底层使⽤HDFS,本⾝也有备份。
    7.⾼性能:
    底层的LSM数据结构和RowKey有序排列等架构上的独特设计,使得Hbase写⼊性能⾮常⾼。
    Region切分、主键索引、缓存机制使得Hbase在海量数据下具备⼀定的随机读取性能,该性能针对Rowkey的查询能够到达毫秒级别
    LSM树,树形结构,最末端的⼦节点是以内存的⽅式进⾏存储的,内存中的⼩树会flush到磁盘中
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据场景化解决⽅案 ⼤数据场景化解决⽅案 1.⼤数据的概念 维基百科的定义: ⼤数据是指利软件⼯具捕获、管理和处理数据所耗时间超过可容忍时间的数据集。 2.⼤数据主流技术 数据采集: 使Flume,可进⾏流式⽇志数据的收集。 使Sqoop可以交互关系型数据库,进⾏导⼊导出数据。 使爬⾍技术,可在⽹上爬取海量⽹页数据。 数据存储与管理: ⼤数据利分布式⽂件系统HDFS、HBase、Hive,实现对结构化、半结构化和⾮结构化数据的存储和管理。 数据处理与分析: 利分布式并⾏编程模型和计算框架,结合机器学习和数据挖掘算法,实现对海量数据的处理和分析。 3.场景化解决⽅案 在⾯对不同的场景时,会使不同的⼤数据组件去解决处理,主要有如下⼤数据场景化解决⽅案。 离线批处理 实时检索 实时流处理 融合数仓 3.1 离线批处理 离线批处理,是指对海量历史数据进处理和分析,⽣成结果数据,供下⼀步数据使的过程。离线批处理对数据处理的时延要求不 ⾼,但是处理的数据量较⼤,占的计算存储资源较多,通常通过MR作业、Spark作业或者HQL作业实现。 离线批处理的特点: 处理时间要求不⾼ 处理数据量巨⼤ 处理数据格式多样 占计算存储资源多 离线处理常的组件: HDFS:分布式⽂件系统,为各种批处理引擎提供数据存储,可以存储各种⽂件格式数据。 YARN:资源调度引擎,为各种批处理引擎提供资源调度能⼒。 MapReduce:⼤数据批处理引擎,于处理海量数据,但是处理速度较慢。 Hive:⼤数据SQL批处理引擎,于处理SQL类批处理作业,但是处理速度较慢。 Spark:基于内存的数据处理引擎,适合海量数据,处理速度⾼效。 Spark SQL:Spark处理结构化数据的⼀个模块。 HDFS介绍 HDFS(Hadoop Distributed File System)基于Google发布的GFS论⽂设计开发。 其除具备其它分布式⽂件系统相同特性外,HDFS还有⾃⼰ 特有的特性: ⾼容错性:认为硬件总是不可靠的。 ⾼吞吐量:为⼤量数据访问的提供⾼吞吐量⽀持。 ⼤⽂件存储:⽀持存储TB-PB级别的数据。 HDFS适合:⼤⽂件存储与访问 流式数据访问 HDFS不适合:⼤量⼩⽂件存储 随机写⼊ 低延迟读取 HDFS回收站机制: 在HDFS⾥,删除⽂件时,不会真正的删除,其实是放⼊回收站,回收站⾥的⽂件可以来快速恢复误删⽂件。 可以设置⼀个时间阀值(单位:分钟),当回收站⾥⽂件的存放时间超过这个阀值或是回收站被清空时,⽂件才会被彻底删除,并且 释放占的数据块。 Hadoop回收站trash,默认是关闭的,若开启需要修改配置⽂件core-site.xml。 Hive概述 Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。 Hive特性: 灵活⽅便的ETL (Extract/Transform/Load)。 ⽀持MapReduce、Tez、Spark多种计算引擎。 可直接访问HDFS⽂件以及HBase。 易易编程。 Hive函数: 查看系统函数的法:show functions; 显⽰函数的法:desc function upper; 详细显⽰函数的法:desc function extended upper; 当Hive提供的内置函数⽆法满⾜业务处理需要时,此时就可以考虑使户⾃定义函数,编写处理代码并在查询中使。 UDF(User-Defined-Function) 于接收单个数据⾏,并产⽣⼀个数据⾏作为输出。 UDAF(User-Defined Aggregation Function) 于接收多个数据⾏,并产⽣⼀个数据⾏作为输出。 UDTF(User-Defined Table-Generating Functions) 于接收单个数据⾏,并产⽣多个数据⾏作为输出。 Hive调优 数据倾斜 数据倾斜指计算数据的时候,数据的分散度不够,导致⼤量的数据集中到了⼀台或者⼏台机器上计算,这些数据的计算速度远远低于平均 计算速度,导致整个计算过程过慢。 ⽇常使过程中,容易造成数据倾斜的原因可以归纳为如下⼏点: group by distinct count(distinct xx) join 调优参数: 在map中会做部分聚集操作,效率更⾼但需要更多的内存。 set hive.map.aggr=true; 此时⽣成的查询计划会有两个MRJob,可实现数据倾斜时负载均衡。 set hive.groupby.skewindata=true; 当连接⼀个较⼩和较⼤表的时候,把较⼩的表直接放到内存中去,然后再对较⼤的表进⾏map操作。 set hive.auto.convert.join=true
[数据仓库]基于⼤数据的数仓和传统数仓的区别 ⽬录 基于⼤数据的数仓 基于⼤数据的数仓 随着新的场景(个性化推荐、户画像、机器学习、数据分析、风控、精准运营)的出现,数据爆炸式增长,基于⼤数据的数仓⽽ ⽣,其特点是业务变化快,速度快、能处理海量数据,有实时需求;ER建模被弱化、DWS、DM采维度建模;建模被弱化,更偏于混合 建模,数据质量⼀般,关注需求速度快、灵活。更强调数据资产的重要性,⼀般到达⼀定规模,倾向与做数据治理(数据质量、数据安全、 数据标准、数据⾎缘、主数据、元数据管理) 1. 实效性⾼ 2. 业务灵活、多变 3. 数据源多样性 4. 数据质量参差不齐 5. 场景复杂 技术栈:HDFS、Hive、Hbase、Flume、Kafka、Flink、Spark、Sqoop、ES、oozie等 传统数仓 传统数仓 传统数仓建有较稳定的业务场景和相对可靠的数据质量,同时也有相对稳定的需求,对数仓建设有较为完善的项⽬管控流程,数据建模有较 严格、稳定的建设标准;但是建设周期长,处理的数据结构单⼀,处理复杂数据成本⾼,只要⽀持数据分析和管理决策。 DWD⼀般采ER建模、DWS、DM采维度建模,数据质量⾼。 技术栈:TD、Oracle 传统数仓和基于⼤数据的数仓的相同点 传统数仓和基于⼤数据的数仓的相同点 1、分层架构 2、ER、维度建模理论同样适 3、数据服务体系⼀般都有BI、指标系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值