前端埋点数据采集(一)采集系统架构设计

news/2024/10/7 22:23:00

前几次内容分享,我们逐步搭建了传统hadoop大数据平台、zookeeper、kafka集群等。

 

假设现在一个场景是:今天产品经理提了1个优先级极高的需求:应用系统前端埋点数据都需要被采集到大数据平台hadoop上。

 


“前端埋点数据的采集系列”,主要分为以下5个部分:

一、采集系统架构设计

二、mock应用系统10万条前端埋点数据
三、Flume采集数据

四、Flume消费Kafka数据到HDFS

五. 前端埋点数据采集总结

一、明确项目目标设计方案

这个需求意味着公司项目开始由javaweb端的数据走向大数据平台,再到数仓平台,最终由报表系统、用户画像系统、推荐系统等展示数据分析平台,来监控经营决策和衡量公司业绩。

 

1、明确项目目标

 

  • 首先,我们要明确项目目标:前端埋点数据需要从javaweb端上传采集到大数据平台HDFS端。
  • 其次,前端APP、H5、PC、小程序等产生的数据分为两大类:一类是业务数据,比如用户的交易、下单、支付、退单等在应用系统的数据库存储;
  • 第二类是埋点数据,比如用户的手机型号、位置、点击屏幕、购买路径等行为会由应用系统写到日志文件log中。
  • 需要采用不用的采集方法。

 

2、设计方案

 

  • 前端埋点的采集我们有很多方案:

    • 可以通过自行编写java代码来模拟实现生成数据到本地文件;
    • 也可以通过第三方工具,埋点系统工具来实现日志的生成。比如:友盟和talking data、神策平台、后裔采集器等等。
  • 梳理本地数据被采集到HDFS上的过程
    • flume采集数据到kafka
    • Kafka生产和消费数据
    • flume消费kafka数据到HDFS上 

 

二、应用系统架构设计

 

 

我们首先需要了解应用系统涉及架构以及数据的流向。

 

1、前端

 

大前端数据来源包括:APP、PC、小程序、H5、爬虫等数据;

 

2、CDN

 

主要组成部件是:防火墙、网络安全设施、F5、负载均衡等。我们关注的点是数据来源,其实这层对企业来说非常重要涉及网络信息安全、负载等等。 

 

3、后端

 

后端这里分成两大类:主要是根据数据结构来分。
 1)业务数据系统

  • 单体架构单nginx,单tomcat,基于SpringBoot,单数据库Oracle;
  • 分布式架构多负载均衡多个nginx,下挂多个tomcat的,基于SpringCloud,分布式数据库mysql、非关系型数据库redis;
  • 其他架构:如:基于ASPnet Core、net、php、sqlserver数据库的;

 

 2)日志埋点数据系统

 

基于SpringBoot生成log到服务器。前端埋点的日志会被系统采集到log文件夹里面存放在服务器。

 

 

三、采集系统整体架构设计

 

采集系统的架构设计:

 

  • 从底层数据业务类型来看分为两大类:埋点日志和业务系统数据

  • 逻辑分层来看:分为三层
    • 数据来源层
    • 数据采集层
    • 数据存储层

 

1、数据来源层

 

  1. 业务数据
    • 关系型数据库数据

      常用常见的如:传统型Oracle、互联网公司Mysql、PGsql、OceanBase来自阿里系已经独立奥星贝斯公司。属于国产化数据库,工行目前对公理财已经使用,部分中小型银行中原银行等也已经使用。对于金融行业近年来一直要求新创,未来应该会成为主流数据库。

      非关系型数据库Not Only Sql数据基于键值存储的redis;基于文档数据库mongoDB;基于图形存储的Neo4j
      基于宽列存储的Cassandra;
  2. 日志数据作为一种非结构化数据,如:log、video、picture等。

 

2、数据采集层

 

    1. 业务数据采集
    2. 业务系统数据库产生的数据,需要通过分布式组件Sqoop来采集。sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql)间进行数据的传递,可以将一个关系型数据库(例如:MySQL ,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

 

  1. 日志数据采集日志作为一种非结构化数据,如:log、video、picture等。采集到HDFS平台,需要通过flume、kafka等组件完成。涉及到服务器采集的选型通道的建立等等。

 

3、数据存储层

 

Hadoop集群数据存储主要是数据存在分布式文件系统HFDS上,后面会使用hive存储。

 

 

 

4、注册中心zookeeper

 

它提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

 

 


总结:

    1. 先了解应用程序简单基本架构
    2. 了解大数据平台数据采集架构
    3. 涉及到项目管理知识,当你拿到一个项目首先要明确PM给你的项目目标是什么?你需要交付什么?然后拆分项目目标,拆分梳理实现项目目标的流程步骤,设计整体方案。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28202.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何快速找出文件夹里的全部带有数字纯数字的文件

参考此文章:如何快速找出文件夹里的全部带有中文&纯中文的文件 只需要根据自己的需求,把下面相关的设置调整好即可

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。背景 ELK (Elasticsearch、Logstash、Kibana) 是当下开源领域主流的日志解决方案,在可观测场景下有比较广泛的应用。 随着数字化进程加速,机器数据日志增加,自建 ELK 在面临大规…

Linux基础——BClinux8.2 排查vmcore异常宕机问题

一、无法/var/crash生成文件 1、参考配置: https://cloud.tencent.cn/developer/article/23679552、BCoe8.2调整配置3、手动生成crash i.参考:参数详解 https://blog.csdn.net/tombaby_come/article/details/134038949 echo 1 > /proc/sys/kernel/sysrq echo c > /proc…

数仓(一)数仓概述

前几次内容分享,我们一共做了三件事: 1.逐步搭建了传统hadoop大数据平台包括zookeeper、kafka、flume集群 2.采集前端埋点到hdfs 3.采集业务数据到hdfs 这样数据都采集到HDFS上了,其实就是到了数仓了!数据采集请看以下链接:前端埋点数据采集系列 一、采集系统架构设计 二、…

说说你对盒子模型的理解?

一、是什么 当对一个文档进行布局(layout)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box) 一个盒子由四个部分组成:content、padding、border、margincontent,即实际内容,显示文本和图像 b…

python教程5:函数编程

函数编程 特性: 1、减少重复代码 2、让程序变的可扩展 3、使程序变得易维护 定义: 默认参数 要求:默认参数放在其他参数后边 指定参数(调用的时候) 正常情况下,给函数传参数要按顺序,不想按顺序就可以⽤指定参数,只需指定参数名即可,但记住⼀个要求就是,指定参数必须放…

linux系统CentOS下安装snmp服务

使用yum安装1.直接使用yum安装snmp*yum install -y net-snmp net-snmp-utils*2.可能碰到的报错3.按照提示安装依赖*yum install libmysqlclient.so.18* 4.要是还有报错,就按照提示执行*yum install -y net-snmp net-snmp-utils --skip-broken*5.其他安装好的上面是四个包,缺…

Nftables漏洞原理分析(CVE-2022-32250)

在nftales中存在着集合(sets),用于存储唯一值的集合。sets 提供了高效地检查一个元素是否存在于集合中的机制,它可以用于各种网络过滤和转发规则。而CVE-2022-32250漏洞则是由于nftables在处理set时存在uaf的漏洞。前言 在nftales中存在着集合(sets),用于存储唯一值的集合。…