用户行为分析笔记(二):系统的整体架构
昨晚写的博文得到大家积极的反馈,非常喜欢这样一种交流的过程,也发现自己还有很多知识掌握的不够好,javascript是我主攻方向,对它的学习要求一定要高,其实对象创建的中篇写的不是太好,太仓促了,很多问题思考不到位,有点浅尝辄止,因此最后一篇我想要好好准备下,就算写不出什么有新意的观点,但一定要写出一篇经过自己仔细思考的文章。
最近噼里啪啦的起了三个系列,今天有人跟我说我贪多,最后啥都学不好,哎,不管了,人生就是要享受当下的快乐,只要学的开心就能坚持下去。
今天也有朋友说我的java框架那个系列其实可以不用写,因为这些只要做了一段时间java的人都会,如果我想写就应该加入算法,设计模式或者是很好的封装类,突出这个重点,这个说的我有点无语了,因为这位童鞋说道的东西我都是看过书实践少,今天在回复一位博友的评论时候我说我想做的职业人是研究人员和工程人员之间的人,我做研究是为了更好的做工程项目,因此我要写的东西应该是实用的东西,那些算法,设计模式等等的确很重要,但是我常把他们当做井上天花的东西,我写java框架主要目的是想把我以前的积累回顾一下,把我对java的框架的理解写出来,对我自己而言我想看看自己到底做过学过多少的技术,对其他人而言,我想知道我写的东西如果给企业做开发好不好用。再说来,我想做高级的东西也得有一个简单的基础,我的基本框架出来了我就可以在这个基础上写出更多复杂的东西,例如我想等我把主页面导航做完就专门讲java服务端缓存技术,这个我有段时间的确研究过,但你没有一个基础框架这个技术也就纸上谈兵了。
好了,不再废话了,今天我要介绍我做过的用户行为分析系统的架构图,这个图不是我们系统的实际架构图,我找了半天没找到,最后总结了我们部门hadoop集群架构后自己画出来的,大家见下图(注意:这个结构图是针对网站的用户行为分析的):
不知道这个图清不清晰,下面我解释下这个结构:
1.第一步就是要在我们要采集用户信息的网站里部署我们自己编写的采集脚本,这个脚本是用javascript编写的,最好是网站所有页面都会引用到这个脚本;
2.每当用户刷新了一次页面,页面就会自动向我们的日志服务集群(Beacon Servers)发送一个这样格式的请求a.gif?xxx=xxx&yyy=yyy....,a.gif是一个1像素*1像素的透明图片,在现在网速这么快的年代基本忽略不计;
3.日志服务集群把传来的信息按一定规则存到日志文件里(其实就是按天一个个存储);
4.对日志服务器集群的日志文件进行预处理,这是使用perl和shell脚本语言完成,因为日志服务器保存的日志文件都是不规范的,而且还包含很多无用的信息,预处理就是让这些日志文件除掉无用信息并且转化成hadoop比较好处理的文件格式;
5.预处理好的文件通过数据通讯层传送到hadoop集群存储起来;
6.hadoop及hive集群根据定义好的业务规则定时的对这些日志文件进行计算,一个完整的业务计算过程在hadoop里称为一个job,计算的技术我们部门主要是mapreduce或者hive;
7.每天的日志文件的数量都是惊人的,我们公司一般式1T左右,而且每天的job数量也比较多,人力很难做好,那么如何调度这些job以及监控job的运行情况的系统管理就十分重要了,这就产生了调度系统和监控系统;
8.计算出的结果导入到Oracle的rac集群或者是Hbase集群,这样我们就可以实时调用计算好的数据;
9.数据展示系统,我们部门一般有三种方式为用户展示这些数据,一种是专门的用户行为分析展示系统,这是用javaEE开发的管理系统,一个是直接提供数据查询接口,比如oracle的plsql用户或者是hive客户端以及Hbase客户端,最后就是专门的报表系统来进行展示了。
这就是我对我们所做的用户行为分析系统的理解,其实我在项目组里只是做了其中某一小块,对整体了解不是很深入,像日志服务器集群和hadoop是根据我所了解的知识推测出来的设计,不晓得准不准确,不知道有没有哪位童鞋也做过这样的系统,能给我提出一点宝贵的意见。
最近我搜刮了百度分析和谷歌分析的用户账号,这个系列下面几篇章节我想通过我使用这两个系统总结用户行为的相关业务知识,虽然用户行为分析使用到了最近超火的hadoop技术,但是用户行为分析所传达的业务知识才是这个系统核心,我对用户行为分析的业务也是一知半解,我也需要这样一个过程。
用户行为分析笔记(二):系统的整体架构相关推荐
- 用户行为分析笔记(一):概述
今天有人问我会不会推荐算法,回到家里反复思考了下(其实就是一个会与不会的回答,为啥我还要反复思量下了?),我发现自己从事软件开发工作这么多年,大小项目无数,但是如果从做应用角度换句话说我做了哪些提高人 ...
- 浅析支付系统的整体架构
支付的典型架构 每个公司根据其业务和公司发展的不同阶段,所设计的支付系统也会有所不同.我们先看看互联网公司的一些典型的支付系统架构. 支付宝 先看看业内最强的支付宝系统,支付宝的支付系统整体架构设计 ...
- MyBatis源码分析(一)MyBatis整体架构分析
文章目录 系列文章索引 一.为什么要用MyBatis 1.原始JDBC的痛点 2.Hibernate 和 JPA 3.MyBatis的特点 4.MyBatis整体架构 5.MyBatis主要组件及其相 ...
- 丰迈实验工坊学习笔记——5G系统组成与架构演进分析
5G系统组成与架构演进分析 一.基础知识了解 二. 网元功能 三.架构设计 一.基础知识了解 DU:全称为Distributed Unit,意思是分布单元. CU:全称为Centralized Uni ...
- mysql源码分析——InnoDB的内存应用整体架构源码
一.基本介绍 在前面基本把几个缓冲的创建应用的源码搞定了.但是在宏观层次上的使用是怎么设计的呢?这篇就分析一下Buffer Pool的整体应用框架,其它的如果有时间再慢慢一一补齐,重点还是要把MySq ...
- Linux内核分析 笔记二 操作系统是如何工作的 ——by王玥
一.知识要点 1.计算机是如何工作的?(总结)--三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算 ...
- Mybatis原理分析之二:框架整体设计
1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化 触发条件:加载配置文件 ...
- 原理分析之二:框架整体设计
1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化 触发条件:加载配置文件 ...
- PowerBI 1. 系统技术整体架构
整体技术架构模块 第一阶段系统架构 完整系统架构蓝图 大数据分析系统分层关系 整体大数据管理平台,主要由大数据处理层.大数据存储层.大数据仓库层,大数据模型服务层组成.并可提供统一的数据管理工具和开发 ...
最新文章
- Xcode中通过删除原先版本的程序来复位App
- BZOJ1460: Pku2114 Boatherds
- DCS系统接地应用讨论
- atitit.词法分析的实现token attilax总结
- leetcode最长无重复子串384题
- KR C 传统C语言的函数定义
- javascript 高级程序设计_重读《JavaScript高级程序设计》
- Python--day26--复习
- 使用IntelliJ IDEA 2020 高效开发 springboot项目
- 三分钟带你看懂prototype原型——ES6进阶
- Crackme019
- 常见视频高速接口分析MIPI,LVDS,RGB,HDMI
- 方法论——程序员的阿喀琉斯之踵
- Linux怎么有两个vmdk文件,「Linux」- 挂载 VMDK 文件
- 从零开始再造打爆李世石的AlphaGo:快速构建棋盘和围棋规则
- vue脚手架 使用npm run dev 遇到的错误问题
- 志愿者招募| WasmEdge 邀你参加第七届中国开源年会 COSCon 2022
- 使用五数概括法来确定数据集中的孤立点
- cnn(卷积神经网络)比较系统的讲解
- LOD原理及相关实现方式