Web日志/招聘网站/电商大数据项目样例【实时/离线】

Web服务器日志分析项目

业务分析

业务背景

​ 某大型电商公司,产生原始数据日志某小时达4千五万条,一天日志量月4亿两千万条

主机规划

在这里插入图片描述

(可略)日志格式:

2017-06-1900:26:36101.200.190.54 GET /sys/ashx/ConfigHandler.ashx action=js
8008 - 60.23.128.118 Mazilla/5.0+ (Windows+NT+6.1;+WOW64;+rv:53.0)+Gecko/20100101+
Firefox/53.0 http://某网址/welcome.aspx 200

业务需求

  • 企业高层期望通过日志进行流量来源分析、网站访客特性等信息,从而下沉访客为会员和客户。
  • 期望通过日志网页访问,来分析出受欢迎和不受欢迎的功能模块、公司运营情况、关注细分功能访问量的统计和报表。
  • 掌握网站缺陷情况,以便进行优化分析。

用户需求

运营、运维、产品部门提出以下具体需求:

  • 运营部门想知道最活跃的用户有哪些
  • 运维部门想知道经常被访问但无法响应的页面有哪些
  • 产品部门想知道最常被访问的页面有哪些,以便进一步加强

功能需求

  • 统计客户端访问次数最多的前10个IP地址,按访问次数排序,使用EChats柱状图可视化。
  • 分析客户端访问页面不正常的页面(返回状态码不为200),同(上)一的形式展示。
  • 统计客户端访问次数最多的前10个访问路径,按访问次数排序,使用EChats柱状图可视化。

技术方案设计

技术特性

  • 数据量大
  • 不需要实时分析
  • 需要简单报表 (考虑Hive)

技术选型

大数据离线分析的行业最佳实践将架构由下向上分为5层,此处不需要机器学习层:

  • 数据采集层
  • 数据存储层
  • 数据分析层
  • 机器学习层
  • 数据展示层

数据采集层

这里选用Flume:Flume可以采集文件,socket数据包、文件、文件夹、kafka等各种形式源数据 -> 又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中。(在初步使用过程中,我们经常监听一个socket端口或者是一个目录的形式去采集元数据)。

这里我们监听目录的形式,去将数据文件采集到HDFS上供给作业处理。

配置Flume对应的.conf文件进行采集和下沉

数据存储层

使用Hadoop的文件系统HDFS进行存储,是最广泛和廉价的大数据分析平台存储方式。

使用基于hadoop的作业进行处理(文中是MapReduce)

数据分析层

此层文中规划的比较笼统,如MapReduce、Spark、Hive等(主离线),如果是实时需求我们一般采用Flink。文中采用的具体技术栈是HIVE,因为SQL语法减少了代码量。(同时需求较为简单,避免了引入Spark增加复杂度【技术没有最好的,只有符合场景下最合适的】)。

在Hive中引入hdfs中的表,进行分析处理,且输出:

开启客户端Hive,然后在Hive中创建数据库t1,在t1数据库中创建内部表a1,列之间用空格分隔,将数据文件/out/part*导入该表。然后将业务逻辑SQL处理结果输出到结果目录,针对不同的三个业务需求,进行不同的SQL处理和编写,此处略。

hive> create database t1;
hive> use t1;
hive> create table a1(... ...) row format delimited fields terminated by " ";
hive> load data inpath 'hdfs://localhost:9000/out/part*' into table a1;
hive> select * from a1 limit 10;...//把分析数据以覆盖的方式插入该目录
hive> insert overwrite directory 'hdfs://localhost:9000/user/hive/warehouse/a1' select n9,count(*) as num from a1 group by n9;

数据展示层

此层略述 , 主是SpringBoot一套的搭配Echatrs的可视化展示。具体是原生还是VUE均可。

Hadoop文件数据由sqoop管道传输到关系型数据库中。

利用管道工具sqoop将hdfs文件迁移到关系型数据库

sqoop export --connect jdbc:mysql://localhost:3306/sqoop --username hive --password hive --table a1 --export-dir /user/hive/warehouse/a1 --input-fields-terminated-by '\001' --num-mappers 1

项目技术栈流程图

在这里插入图片描述

招聘网站数据分析项目

相比于直接生成的数据文件,这里的原始数据通过Python爬虫进行爬取,后续步骤类似(比如技术特性一致:数据量大,非实时等),具体业务需求不一致,原始数据格式不一致(此处非日志格式,而是JSON)。即数据采集层使用Python的request模块进行采集。

项目技术栈流程图

在这里插入图片描述

电商网站实时数据分析项目

业务分析

电商网站的数据非常多,有用户基本数据(个人信息、账户信息等)、访问数据(浏览、点击、收藏、购买等)、消费数据(支付、转账等)等。借助这些信息我们取其中两个简单的业务需求。

业务需求

  • 企业高层期望能够随时查看当天的累计销售总额;
  • 部门经理期望能看到某种类型商品(如家电、食品)下的销售总额,观察日内的销售情况的变化;

功能需求

  • 统计当天的累计销售金额;
  • 统计某种类型的商品当天每个时间段内的销售金额;

这里,技术特性就多了个实时性,文中采用spark进行微批处理,近实时性。

技术选型

大数据实时计算的行业最佳实践架构由下往上分为5层:

  • 数据采集层
  • 数据缓存层
  • 数据计算层
  • 数据存储层
  • 数据展示层

这里数据采集层依旧是使用Flume进行采集原始文件数据【数据采集层】,但是采集之后下沉到缓存层不再是hdfs文件而是消息队列Kafka。【数据缓存层】。后经由Spark程序消费处理【数据计算层】后存储到Redis中【数据存储层】,再通过Spring程序进行可视化展示【数据展示层】。

核心代码

这里的核心代码是Spark的处理,如何把数据归纳到对应时间段进行累加统计,文中采用的是最简单的直接根据解析出的JSON数据中的time字段进行Redis中对应的key进行累加操作。【采用的是Redis的incrBy累加操作,此处文中未作说明,并发情况下可能封装了redis的事务watch或者CAS乐观锁?】(并未使用开窗,这里的需求和实现是伪实时的)

项目技术栈流程图

在这里插入图片描述

金融大数据分析项目

业务需求

  • 银行高层希望了解银行有哪些业务办理的方式?各自占多少份额?这样可以优化现有的资源配置,更好地服务客户
  • 银行高层希望了解各个城市的业务量分别是多少,有利于开展业务活动
  • 银行高层想要知道今年依赖哥哥月份的业务量及变化趋势,并预测今年的业务办理总量
  • 银行高层希望能给基金用户推荐合适的基金(真歹毒啊!)

功能需求

  1. 统计分析银行各种业务办理方式的占比,采用Echarts饼状图;
  2. 统计分析银行哥哥城市的业务量,并采用ECharts柱状图可视化;
  3. 统计分析银行截止到目前,每个月的业务量,并采用ECharts折线图可视化;
  4. 通过历史用户购买基金的数据,使用协同过滤算法,给当前用户推荐合适的基金;

其中(1)和(2)属于离线数据分析,(3)属于实时数据分析,(4)属于数据挖掘。

技术特性

  • 数据量较大
  • 业务较为复杂
  • 离线和实时需求交叉

技术框架

将其分为四层:数据采集层、数据处理层、数据存储层、数据展示层。

数据采集层

文中离线处理方向:数据采集使用SparkSQL从MySQL中采集数据;实时方向采用Flume和Kafka从服务器进行采集数据。

数据处理层

离线方向采用Spark Core进行数据处理;

实时方向采用Flink处理;

数据存储层

离线采用MySql进行存储;实时采用Redis进行存储;

数据展示层

采用SpringBoot和VUE.js进行处理。

项目技术栈流程图

离线方向将数据用SparkSQL从MySQL中抽取后处理存放在Hive分区表中,再用Spark进行处理和清洗统计分析保存在MySQL中。实时则是直接处理Flume采集到Kafka中的数据下沉到Redis和MySQL中。

【Flink业务处理都是简单的keyBy(0)和sum(1)】未进行开窗类的。

在这里插入图片描述

使用Spark ML进行数据挖掘:引入maven中spark-mllib_2.11调用对应的API进行结果训练获取:略。

参考

《“1+x”大数据应用开发(Java)职业技能等级证书系列教材》 卢正平 曹小平 郑子伟 编著

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】自定义协议+序列化+反序列化

自定义协议序列化反序列化 1.再谈 "协议"2.Cal TCP服务端2.Cal TCP客户端4.Json 喜欢的点赞,收藏,关注一下把! 1.再谈 “协议” 协议是一种 “约定”。在前面我们说过父亲和儿子约定打电话的例子,不过这是感性的认识&a…

Windows提权—数据库提权-mysql提权mssql提权Oracle数据库提权

目录 Windows 提权—数据库提权一、mysql提权1.1 udf提权1.1.2 操作方法一 、MSF自动化--UDF提权--漏洞利用1.1.3 操作方法二、 手工导出sqlmap中的dll1.1.4 操作方法三、 moon.php大马利用 1.2 mof提权1.3 启动项提权1.4 反弹shell 二、MSSQL提权MSSQL提权方法1.使用xp_cmdshe…

【MATLAB源码-第21期】基于matlab的BCH码编码译码仿真,调制使用QPSK,对比编码与未编码的误码率曲线。

操作环境: MATLAB 2022a 1、算法描述 QPSK调制解调:QPSK(Quadrature Phase Shift Keying)调制解调**是一种数字调制技术,通常用于数字通信系统。 调制: 1. 首先,将数字信号分成两路&#xff…

nodejs基础学习(一)

nodejs逆向python爬虫学习笔记 第一章 nodejs基础 nodejs基础 nodejs逆向python爬虫学习笔记开发环境vscodeF5运行注释js逆向作用变量**1、var全局**2、let块级作用域: {} if while for。。。等等循环中使用3、const 块级作用域,常量,不可以修改/重新定…

MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记

以前微处理器(MPU)与微控制器(MCU)是截然不同的两种设备,MPU支持丰富的软件系统,如Linux和相关的软件堆栈,而MCU通常将专注于裸机和RTOS。近年来,随着MCU的性能越来越高,…

【A-006】基于SSH的新闻发布系统(含论文)

【A-006】基于SSH的新闻发布系统(含论文) 开发环境: Jdk7(8)Tomcat7(8)MySQLIntelliJ IDEA(Eclipse) 数据库: MySQL 技术: SpringStruts2HiberanteJSPJquery 适用于: 课程设计,毕业设计&…

一键切换ip地址软件的功能和优势

随着网络技术的不断发展和普及,IP地址已经成为我们在互联网上活动的重要标识。然而,在某些特定情况下,我们可能需要频繁地切换IP地址,以满足不同的网络需求或保护个人隐私。一键切换IP地址的软件应运而生,为我们提供了…

Vue-05

v-model 应用于其他表单元素 常见的表单元素都可以用v-model绑定关联 → 快速获取或设置表单元素的值 它会根据控件类型自动选取正确的方法来更新元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name…

红杉资本:2024年关于AI的4大预测

四大预测 预测一&#xff1a;Copilot 将逐渐向 AI Agent 转变。 2024 年&#xff0c;AI 将从辅助人类的 Copilot 转变为真正能替代一些人类工作的Agent。AI 将更像是一个同事&#xff0c;而不仅仅是一个工具&#xff0c;这点在软件工程、客服等行业已经初步显现。 预测二&…

2024年04月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2024年04月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

喜讯!全视通获评“医用气体行业优秀装备制造企业”称号

春意盎然&#xff0c;“渝”您相见。3月28日&#xff0c;“2024中国医学装备大会暨展览会”在重庆隆重启幕&#xff0c;本次展览会是我国医学装备领域政府部门、相关专家、头部企业深度参与的综合性展会&#xff0c;是先进技术最权威的展示平台之一&#xff0c;是引领创新发展的…

【物联网】Qinghub opc-ua 连接协议

基础信息 组件名称 &#xff1a; opcua-connector 组件版本&#xff1a; 1.0.0 组件类型&#xff1a; 系统默认 状 态&#xff1a; 正式发布 组件描述&#xff1a;通过OPCUA连接网关&#xff0c;通过定时任务获取OPCUA相关的数据或通过执行指令控制设备相关参数。 配置文件&a…

如何通过针对iOS的动态分析技术绕过反调试机制

在这篇文章中&#xff0c;我们将跟大家介绍和分析一种针对iOS的新型安全研究技术&#xff0c;该技术能够让iOS应用程序的调试过程更加轻松&#xff0c;并解决那些可能会延缓我们步伐的阻碍。 如果你要对一个采用了反调试技术的iOS应用程序或二进制文件进行调试的话&#xff0c;…

正则表达式引擎库汇合

1.总览表格 一些正则表达式库的对比 index库名编程语言说明代码示例编译指令1Posix正则C语言是C标准库中用于编译POSIX风格的正则表达式库 posix-re.cgcc posix-re.c 2PCRE库C语言提供类似Perl语言的一个正则表达式引擎库。 一般系统上对应/usr/lib64/libpcre.so这个库文件&am…

MDO4104B-6泰克MDO4104B-6混合域示波器

181/2461/8938产品概述&#xff1a; 包含逻辑分析仪、频谱分析仪和协议分析仪的示波器 - 所有这些都同步实现集成视图。尽管您可以将泰克 MDO4000B 系列简单地用作混合信号示波器或频谱分析仪&#xff0c;但真正的威力来自于两者的集成。您有史以来第一次可以在一台仪器上看到…

接口自动化框架搭建(八):pytest+allure+jenkins接入

1&#xff0c;安装allure插件 2&#xff0c;创建jenkins项目 怎么确定路径&#xff0c;可以查看工作空间&#xff0c;jenkins默认根目录就是工作空间 配置执行用例的命令&#xff0c;可以现在pycharm上试一下&#xff0c;然后在jenkins中配置&#xff1a; 把启动java服务的代…

Flutter 开发学习笔记(0):环境配置

文章目录 前言开发需求环境配置运行出现问题我运行也是解决了很久的问题镜像源设置为清华的镜像源&#xff08;不知道有没有影响&#xff09;使用JDK17&#xff0c;测试过JDK21和JDK11都不行手动下载flutter 对应的gradle添加阿里云代理安卓编译下载 运行成功&#xff01; 前言…

双目测距项目 | 在Jetson-Nano平台上部署SGBM深度测距+YOLOv5目标检测算法

项目应用场景 面向在 Jetson Nano 平台上部署 SGBM 深度测距和基于 YOLOv5 的目标检测算法&#xff0c;实现双目测距的功能。 项目流程与效果&#xff1a; 项目细节 > 具体参见项目 README.md项目获取 https://download.csdn.net/download/weixin_42405819/89051043

【2024年5月备考新增】《2024高项论文精华版(3)考试技巧》

3 考试技巧 3.1 考试难度 考试难度上&#xff0c;越是常见的题目、越是被大家预测的题目&#xff0c;阅卷就会更严格。 越是大家猜测不到的&#xff0c;越是小众的题目&#xff0c;阅卷严格程度就会低。 3.2 技巧 1、记住软考论文的目的&#xff0c;不是为了证明你的格式严谨…

枚举---算法

1、定义 枚举算法&#xff1a;也称之为穷举算法&#xff0c;这种算法就是在解决问题的时候去使用所有的方式去解决这个问题&#xff0c;会通过推理去考虑事件发生的每一种可能&#xff0c;最后推导出结果。优点&#xff1a;简单粗暴&#xff0c;它暴力的枚举所有可能&#xff…