腾讯云大数据技术介绍-案例分享

2021-11-05 10:13:47 浏览数 (1)

前面几章说了 腾讯云大数据技术介绍,分别介绍了:大数据的存储,大数据的使用,和 实时并发数据处理。这是一套完整的体系,需要综合的来运用才能体现出商业化的最大价值。

今天我们就集合起来,综合所用流程说一个大数据处理的典型案例。

典型案例——用户画像标签系统

1. 需求

       现在需要做某电商/某信息流App产品的用户画像系统,需要建立一个用户画像表,同时记录用户在app上所有的核心操作(例如购买退货等,不包括点击收藏等附属功能),为用户画像。

       这个系统要求对整体的app用户流量做监测,并且对用户画像表进行事实更新,并且能通过工具快速的搜寻到一个用户的用户标签信息;同时需要每天计算出一些统计数据,例如今天一天的用户平均年龄,总购买量等。

2. 具体设计

1)技术栈选择

这个用户画像系统最底层最核心的其实是一个实时更新数据存储,我们需要支持

1)海量数据存储;

2)快速查询;

3)海量数据处理;

4)高实时性流数据处理。

我们分析 数据存储:

     Hadoop是为了大数据而生的,由google开源。Google当时遇到的问题:大量的网页存储、搜索算法,分别对应了以下几个技术能力:

  • HDFS Hadoop Distributed File System:分布式存储系统(高可靠、高扩展、高吞吐)
  • MapReduce:分布式计算架构(计算向数据移动)
  • YARN Yet Another Resource Management :集群资源的管理和调度

但是Hadoop计算性能比较菜,现在用于存储(Hbase、Hive、HDFS)和资源调度(YARN)比较多。

所以 数据存储选择 HDFS Hive Hbase

再来看查询:如何快速查询,前面也讲到了,用Impala

**Impala**是一种介于MySQL和HIVE之间,实时交互式的OLAP

1)作用

用SELECT JOIN快速的查询HDFS或者HBase上的数据,使用与HIVE相同的Metadata和SQL语法

2)特点

特点就是——快!快!快!

且保持了Hadoop的SQL查询

速度快、可扩展、易接入、易使用、高安全 kerberos认证

所以高效查询,选择 Impala

流数据处理:Flink,

Flink能够分布式运行在上千个节点上,将一个大型计算任务的流程拆解成小的计算过程,然后将tesk分布到并行节点上进行处理,在执行任务过程中,能够自动发现事件处理过程中的错误而导致数据不一致的问题

所以 批数据处理,采用Flink。

消息中间件:Pulsar, 鉴于对组件的熟悉程度,可以先选择Kafka ,

pulsar 和 Kafka的对比,可以查看这篇文章:https://www.infoq.cn/article/1uaxfkwuhukty1t_5gpq

根据上文我们分别针对这三点列出解决方案:

需求

解决方案

数据存储

HDFS Hive Hbase

高效查询

Impala

批数据处理

Spark

流数据处理

Flink

消息中间件

Pulsar

3)数据流程图

流程图流程图

腾讯云套件

这些大数据的套件在腾讯云都有,都可以申请使用。

为什么使用Pulsar呢?

Apache Kafka 是一种快速、可扩展的、分布式的消息流平台,拥有高吞吐、低延迟、高容错、高并发、可扩展、持久化等优秀特性,在公司内已经支持大量的业务场景。而Apache Pulsar也是一个高性能的服务间消息传输解决方案,拥有高一致性、低延时、读写分离、快速扩容、灵活容错等特性。相比较Kafka,Apache Pulsar不仅内置了多租户、跨机群复制等功能,还通过新一代存储分离的架构思想,依托BooKKeeper解决存储可靠性、一致性问题,从根本上避免了Kafka可能会出现的故障恢复不可控问题。

由于Pulsar比Kafka拥有更可靠的消息管理,并且支持灵活的扩缩容策略。

消息消费差别:

1632757586-3772-6151e7525c1ba-378157.png1632757586-3772-6151e7525c1ba-378157.png

Kafka/Rocketmq每个分区进会负载到一个comsumer上,多出partition个数的consumer将不会起作用(即不会消息任何的消息)。而Pulsar这面每个分区会与当前订阅下的所有消费者客户端进行关联,broker端会根据每个消费者客户端的能力,将消息推送给客户端进行消费。Pulsar的这种设计,在很大程度上提高了系统可承载的消费能力。业务方可以根据自己的消费需求,并行的部署多于分区个数的消费者。

  但是,这种设计,有利也有弊,不但提高了系统实现的复杂度,也为broker端的客户端管理埋下了隐患,需要运营过程中,做好消费客户端个数、流量等的流控配置,避免因业务方使用不当,引起broker端负载压力过大,进一步导致broker oom、宕机等。

   此外,Pulsar支持shared、key_share、failover、exclusice四种模式消费,但不支持广播模式消费消息,这一点与Kafka/Rocketmq有比较大的区别。

如果没有Pulsar,可以使用CKafka,

总有一款适合你。

这里大数据部分就完结了。

接下来我们会讲一下,如何使用大数据处理过后,平台上数据的处理方法。

0 人点赞