《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
随机推荐
- hdu 1003 Max Sum(基础dp)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- Mysql存储过程及调用
存储过程: 存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量.有条件执行以及其它强大的 ...
- 8 Python 数据类型—元祖
Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 创建空元组 tup1 = () 元组中只 ...
- 在YUV图像上根据背景色实现OSD反色
所谓的OSD其实就是在视频图像上叠加一些字符信息,比如时间,地点,通道号等, 在图像上叠加OSD通常有两种方式: 一种是在前端嵌入式设备上,在图像数据上叠加OSD, 这样客户端这边只需解码显示数据即可 ...
- 本机不装Oracle,使用plsql连接远程Oracle的方法
由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql.toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持.最后终于发现一个很有效的方法,Or ...
- Java如何调用dll
-----------------------------前置条件------------------------------------- 1. 首先有testdll.dll 2. 需要testdl ...
- docker-ce安装与搭建私有仓库
https://www.cnblogs.com/sszhou/p/7389144.html 系统环境centos7 ###docker-ce安装###1.卸载老版本,较老版本的Docker被称为doc ...
- ES6学习之装饰器
定义:修饰器是一个对类进行处理的函数,用来修改类的行为 <注>:装饰器只能用来修改类及类的方法 类的装饰: 静态属性:只能通过类访问,修饰函数直接在类上操作 @testable class ...
- Spring整合JUnit4测试时,使用注解引入多个配置文件
转自:https://blog.csdn.net/pwh309315228/article/details/62226372 一般情况下: @ContextConfiguration(Location ...
- HTTP之首部
http报文包括起始行.首部和主体. HTTP请求/响应起始行 请求组成: 方法 + 请求URL + HTTP版本 响应组成: HTTP版本 + 数字状态码 + 描述状态的原因短语 HT ...