《OD学hadoop》20160903某旅游网项目实战
一、大数据的落地点
1.数据出售
数据商城:以卖数据为公司的核心业务
2. 数据分析
百度统计
友盟
GA
IBM analysis
3.搜索引擎
4. 推荐系统
mahout
百分比
5.精准营销
(1)广告投入:网站所有者集成广告联盟的js->访问者访问页面->js发送用户数据->广告联盟发送一个可以报价的广告位信息给所有的广告公司(报价是否、价格多少)
->广告公司接受到这个报价信息,根据携带的用户信息计算用户点击的概率(用户点击模型)->广告公司将是否报价信息以及报价多少的信息发送给广告联盟->广告联盟选取高报价进行展示
用户信息
用户点击广告信息
第三方过来
(2)金融产品投顾
现阶段不算成熟
6. 数据预测
天气预测
路况预测
城市发展预测
7. 人工智能
数据挖掘
机器学习
二、大数据分析平台
1. 分析收集得到的数据,根据最终结果进行业务指导。
两大类;
(1)离线数据分析平台
对数据实时性要求不高的
对机器的性能要求比较低
MapReduce Hive Pig
(2)实时数据分析平台
对实时性要求严格,必须没有时间延迟的
对内存、CPU的要求比较高
storm,spark streaming
2. 为什么自己做大数据分析平台
1)使用第三方的
优点:简单
缺点:
有的需要收费,有的功能比较低
数据不在本公司,后续的一些定制的开发没有进行
没法定制化
2)自己做
优点:
数据在公司,后续的业务系统开发比较容易
缺点:
从无到有做一个系统出来,开销比较大
需要人员参与
三、数据处理流程
1. 数据收集
保存HDF,实时的直接进入数据分析
2. 数据处理&分析
redis,mongodb
关系型数据库
HDFS相关生态圈上
3. 数据结果可视化
(可选)
4. 数据结果应用
推荐
用户画像
数据分析(数据分析师)
四、分析平台的数据来源
1. 服务器日志数据
Nginx日志,服务器监控日志等
2. 业务日志
log4j
3. 业务数据
用户基本信息、订单信息、产品信息等
4. 用户行为数据
从客户端收集得到的数据
用户行为:在页面上进行的任何操作都是用户行为
以监听事件的方式来记录数据
5. 购买的数据
6. 爬虫的数据
五、项目定位
大数据分析平台一部分,结合之前所学的hadoop生态圈的相关知识进行讲解。
1 . 需求:收集各个客户端的用户行为数据,进行数据分析处理,最终将结果展示出来
2. 核心关注点
3. 重点概念:
1)访客/用户:标识访问网站的用户
区分:
PC端、移动端的web端:
(1)采用IP来区分用户
(2)采用客户端种植cookie的方式,第一次访问就产生一个唯一uuid,保存到cookie中,有效期10年
移动端:
(1)采用机器码
(2)生成uuid,保存到磁盘中
分析指标:
新增用户
活跃用户
总用户
流失用户
回流用户
2)会员:业务系统的注册用户,而且登录,一般来讲,直接采用业务系统的umid来区分。
分析指标:
新增会员
活跃会员
总会员
流失会员
回流会员
访客转会员比率
新访客转换率
老访客转换率
3)会话:用户进入系统到离开系统的这段时间
实现方式/会话范围
(1)采用浏览器的session进行会话区分
(2)在cookie种植一个上一个操作的访问时间,cookie设置过期时间,设置为6分钟,那么6分钟后,再访问就是一个新的会话。
分析指标
(1)会话数量
(2)会话长度(会话的总时间点)
(3)跳出会话数量(只访问一次的会话数量)
外链:
用户通过第三方网站访问我们的系统
分析广告投放的预测效果是否达到
分析指标:
带来的访客数量
带来的会话数量
带来的订单相关信息
外率跳出率
PV(page view):页面浏览量
UI(unique vistor):唯一访问用户量,指通过网络、流量访问系统给的自然人
独立IP数量:ip的数量,辅助UI来展示数据
dv(depth view):访问深度
各个访问深度的用户数量
六、技术架构
1, 技术层面
架构分为:
数据收集层
数据处理层
数据展示层
2. 技术方案设计
1)数据收集方案
方式
PC端、移动web端:jsp sdk
android、ios等移动端:android/ios sdk
后台系统:php sdk,javasdk
基准:以最小单位事件作为数据的收集的单位的。
目标:尽可能的多的收集用户信息数据,降低数据的丢失率。
收集哪些事件:
launch:
pageView: en/p_url/p_ref/tt
event
chargeRequest
chargeSucess
chargeRefund
Nginx服务器会做事件内容扩充:ip地址、服务器时间
ip地址:如果你的服务器经过多层跳转,那么默认获取ip地址的nginx代码一般是无效的。
Nginx接受到数据后:
将数据保存到日志中,nginx的作用完成了
日志数据分割:^A
日志格式:ip地址^A服务器时间^A客户端访问所携带的用户行为数据
flume:
监控nginx的日志文件,将数据实时的写入到hdfs中
为什么不写hbase:
数据需要进行预处理,flume只做数据收集的事,方便后期的bug修复,
nginx服务器搭建:
nginx热备
Flume的企业搭建:
Flume-ng
2)数据展示方案
结果存储在关系型数据库(mysql)
spring + springmvc + mybatis
前后台分离
前端直接展示数据,后端直接返回一个json数据给前端
echarts:百度
highcharts:国外一个公司的产品
mysql-->mybatis-->后台系统(springmvc)-->json数据的方式->前端实现(html+css+javascript+highcharts)
3)数据分析&处理
ETL操作:数据清洗、过滤、补全
数据来源:存在在HDFS上的日志文件
数据处理方式: MapReduce Hive
数据保存位置:HBase
HBase表结构设计:
为什么保存hbase? ->列不统一
热点问题怎么解决?
(1)按天分表,rowkey随机,没有特别规律的一个字节数据
(2)在rowkey(有访问规律)之前,加一个随机数字(其实就是hbase服务器数量取模)
(3)在创建hbase时,会进行预分区
数据处理
MapReduce:
数据流: HBase->mapreduce处理,直接输出到mysql中
Hive:
数据流:HBase->hive表数据外部表关联到hive表中去->hive的hsql语句
分析结果存储到Hfds中-->sqoop将hive分析结果存储到mysql中
七、数据仓库
星型模型:
事实表:stats_xxx
维度表:定位具体维度信息,确定数据,dimension_xxx
分析辅助表:
用户:保存会员id之类的,用户分析新增会员;保存订单数据,chargeRequest,chargeSuccess,chargeRefund数据补全
ip解析库
八、问题思考
1. 怎么将数据保存到mysql中?
mapreduce
hive
2. 维度名称属性怎么转换为id?
九、Nginx服务器
并发能力强,处理访问静态资源速度很快。
1. http节点
log_format user_log_format '$remote_addr^A$mesc^$request_url';
2. server节点
location ~.*(BEIfeng)\.(gif)${
#类型
default_type image/gif;
#记录日志,存储到一个文件中,文件要求flume进行有权限放回
access_log /usr/local/nginx/user_logs/access.log user_log_format;
#访问资源
root /usr/local/nginx/html;
}
十、js sdk和javasdk
十一、flume
hdfs sink
ha环境中怎么配置
(1)hdfs.path配置成core-site.xml中的fs.defaultFS加具体的数据存储路径
(2)将hadoop环境中的core-site和hdfs-site.xml连个文件copy到conf文件夹中 flume-ng agent --conf ${FLUME_HOME}/conf
《OD学hadoop》20160903某旅游网项目实战的更多相关文章
- 《OD学hadoop》20160904某旅游网项目实战
一.ETL操作 抽取数据 日志格式: 分割符号:^A IP地址 服务器时间 二.Java工程 1. 创建项目 copy代码及配置文件 2. 改配置 core-site.xml hbase-site.x ...
- 《OD学hadoop》20160910某旅游网项目实战
一.event事件分析 叶子节点只计算一次 父节点的触发次数由子节点的数量节点 事件流:是由业务人员定义的一系列的具有前后顺序的事件构成的用户操作行为,至少包括两个事件以上. 目标:以事件流为单位,分 ...
- 《OD学hadoop》第三周0710
一.分布式集群安装1. Hadoop模式本地模式.伪分布模式.集群模式datanode 使用的机器上的磁盘,存储空间nodemanager使用的机器上的内存和CPU(计算和分析数据) 2. 搭建环境准 ...
- 《OD学hadoop》第二周0702
大数据离线计算hadoop2.x 三周(6天) markdown文本剪辑器 罗振宇--跨年演讲,时间的朋友 http://tech.163.com/16/0101/11/BC87H8DF000915B ...
- 《OD学hadoop》第一周0625
一.实用网站 1. linux内核版本 www.kernel.org 2. 查看网站服务器使用的系统 www.netcraft.com 二.推荐书籍 1. <Hadoop权威指南> 1- ...
- 《OD学hadoop》第四周0716
7.16 一.回顾 二.HDFS Federation(联盟) Hadoop 2.2.0发布新特性 很多的大公司都在使用:BAT HDFS Federation + HDFS HA架构 互相隔开,但是 ...
- 《OD学hadoop》第三周0709
一.MapReduce编程模型1. 中心思想: 分而治之2. map(映射)3. 分布式计算模型,处理海量数据4. 一个简单的MR程序需要制定map().reduce().input.output5. ...
- 《OD学hadoop》第二周0703
hdfs可视化界面: http://beifeng-hadoop-01:50070/dfshealth.html#tab-overview yarn可视化界面: http://beifeng-hado ...
- 《OD学hadoop》Hadoop前置
一.Hadoop 前置课程 1. Linux系统,基本命令 2. Java语言,JavaSE相关知识 3. MySQL基本的DML和DDL SQL on Hadoop
随机推荐
- Mysql远程链接访问权限设置
Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号 如何开启MySQL的远程帐号-1)首先以 r ...
- Sqlte 知识点记录
1.表存在 select count(*) from sqlite_master where type='table' and name='MyTable'; sql),path ))"; ...
- node.js+express+jade系列二:rotue路由的配置
页面的访问最常见的是get和post两种,无论是get请求还是post请求express自动判断执行app.get或app.post 1:app.get(名称,路径)或app["get&qu ...
- LXC linux容器简介——在操作系统层次上为进程提供的虚拟的执行环境,限制其使用的CPU和mem等资源,底层是linux内核资源管理的cgroups子系统
1.LXC是什么? LXC是Linux containers的简称,是一种基于容器的操作系统层级的虚拟化技术. 2.LXC可以做什么? LXC可以在操作系统层次上为进程提供的虚拟的执行环境,一个虚拟的 ...
- 关于CMainFrm不接收鼠标事件响应原因
CMainFrm即主框架窗口对鼠标的左键和右键在OnLButtonDown中无响应 解决方案: 1.在OnNcLButtonDown中响应.(即非客户区中响应) 参考文献:http://www.cod ...
- 获取window状态栏和标题栏的高度
1.获取状态栏高度: decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFram ...
- loj516dp一般看规律
STL 这...我只能说是...考得是... STL的正确用法? #include<iostream> #include<cstdio> #include<cstdlib ...
- [转]HTTP Header 详解
HTTP Header 详解 HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议.HTTP协议采用了请求/响应模 型,浏览器或其他客户端发出请求 ...
- (转)python set 用法
转载自:http://hi.baidu.com/����_xu/blog/item/5b9650c513bd3f049d163d8b .html python的set和其他语言类似, 是一个 基本功能 ...
- MD5 校验文件
https://blog.csdn.net/wudishine/article/details/42466831 MD5.h #ifndef MD5_H #define MD5_H #include ...