离线数据分析流程及推荐系统架构图

1、离线数据分析流程

一个应用广泛的数据分析系统:“web日志数据挖掘”

1.1 需求分析

1.1.1 案例名称

“网站或APP点击流日志数据挖掘系统”。

1.1.2 案例需求描述

“Web点击流日志”包含着网站运营很重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化率、访客的来源信息,访客的终端信息等。

1.1.3 数据来源

本案例的数据主要由用户的点击行为记录

获取方式:在页面预埋一段js程序,为页面上想要监听的标签绑定事件,只要用户点击或移动到标签,即可触发ajax请求到后台servlet程序,用log4j记录下事件信息,从而在web服务器(nginx、tomcat等)上形成不断增长的日志文件。

形如:


58.215.204.118 - - [18/Sep/2013:06:51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"

1.2 数据处理流程

1.2.1 流程图解析

本案例跟典型的BI系统极其类似,整体流程如下:

但是,由于本案例的前提是处理海量数据,因而,流程中各环节所使用的技术则跟传统BI(商业智能)完全不同,后续课程都会:

1) 数据采集:定制开发采集程序,或使用开源框架FLUME

2) 数据预处理:定制开发mapreduce程序运行于hadoop集群

3) 数据仓库技术:基于hadoop之上的Hive

4) 数据导出:基于hadoop的sqoop数据导入导出工具

5) 数据可视化:定制开发web程序或使用kettle等产品(echarts)

6) 整个过程的流程调度:hadoop生态圈中的oozie工具或其他类似开源产品

1.2.2 项目技术架构图

1.2.3 项目相关截图(感性认识)

a) Mapreudce程序运行

a) 在Hive中查询数据

a) 将统计结果导入mysql


./sqoop export --connect jdbc:mysql://localhost:3306/weblogdb --username root --password root  --table t_display_xx  --export-dir /user/hive/warehouse/uv/dt=2014-08-03

1.3 项目最终效果

经过完整的数据处理流程后,会周期性输出各类统计指标的报表,在生产实践中,最终需要将这些报表数据以可视化的形式展现出来,本案例采用web程序来实现数据可视化

效果如下所示:

2、推荐系统架构图

时间: 2024-09-29 17:33:33

离线数据分析流程及推荐系统架构图的相关文章

离线数据分析流程介绍

3. 离线数据分析流程介绍 注:本环节主要感受数据分析系统的宏观概念及处理流程,初步理解hadoop等框架在其中的应用环节,不用过于关注代码细节   一个应用广泛的数据分析系统:"web日志数据挖掘"   3.1 需求分析 3.1.1 案例名称 "网站或APP点击流日志数据挖掘系统". 3.1.2 案例需求描述 "Web点击流日志"包含着网站运营很重要的信息,通过日志分析,我们可以知道网站的访问量,哪个网页访问人数最多,哪个网页最有价值,广告转化

为什么需要架构图,怎么画?

Technorati 标签: 架构图,架构,交流,布局 不知不觉中做架构师也已经4年了,最初的感觉只是一个名号,不再把代码作为强制的任务,后来开始慢慢的转变工作内容.画图,成为了我的主要工作.我可能不是每天都在写代码,但却是每天都在画图,而且我越来越觉得画图让我更容易说清楚. 画架构图有几个好处:看清楚系统包含哪几个部分,各个部分实现什么职责,相互之间的关系是什么.当和别人讨论的时候,通过架构图可以很容易的把讨论的问题框定在一个确定的范围里,可以很容易的察觉出彼此之间存在误解的一些区域,比如对一

软件各种架构图2

Spring MVC 核心架构图 架构图对应的DispatcherServlet核心代码如下: //前端控制器分派方法 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = nu

Spring 架构图

1.Spring 架构图 Spring 是一个开源 框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架.Spring 框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理的环境.Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象.这样的对象可以在不同J2EE 环境(Web或EJB ).独立应用程序.测试环境之间重用. 组成Spring 框架

架构师必备技能:教你画出一张合格的技术架构图

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 如何用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰. 先厘清一些基础概念 1.什么是架构? 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策. 架构是

程序员/架构师/CTO:如何画出一张美观的架构图

作为一名程序员或架构师,有时候我们需要画一张架构图去给同Team同事或其他组的同事或者给上级/老板进行汇报.我们都梦想画的架构图,很漂亮,让人一看就眼前一亮的感觉. 在这里我们介绍一种画图的方法论,来让架构图或流程图更加清晰,层次化.首先我们来看一个网站 (https://c4model.com/).该网站提出了一个被称之为C4模型的东西.什么是C4?Context(上下文).Container(容器).Component(组件).Code(代码).C4就是代表上述一系列分层的图表,可以用这些图

程序员必备技能:如何画好架构图?

架构图分类 搜集了很多资料,分类有很多,有一种比较流行的是4+1视图,分别为场景视图.逻辑视图.物理视图.处理流程视图和开发视图. 场景视图 场景视图用于描述系统的参与者与功能用例间的关系,反映系统的最终需求和交互设计,通常由用例图表示. 逻辑视图 逻辑视图用于描述系统软件功能拆解后的组件关系,组件约束和边界,反映系统整体组成与系 统如何构建的过程,通常由UML的组件图和类图来表示. 物理视图 物理视图用于描述系统软件到物理硬件的映射关系,反映出系统的组件是如何部署到一组可    计算机器节点上

如何画出一张合格的技术架构图?

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 如何用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰. 先厘清一些基础概念 1.什么是架构? 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策. 架构是

LoadRunner相关架构图

LoadRunner概览图: Lr架构图: