一、日志分析系统
1、特点
(1)数据源多样化
(2)流式数据(广告点击数据)
(3)高并发
(4)数据量大
(5)近实时分析与离线处理
2、要求
(1)支持对种源数据(网页、mysql、Hive、Hbase等)
(2)保证数据不丢失(少量丢失)
(3)数据集中存储
(4)近实时分析和离线分析
3、大概的原理过程
用户服务器提取用户日志——>将用户日志进行处理,归一化处理——>将处理后的日志存储到HDFS上——>根据多种分布式计算架构以及处理方案对日志进行处理——>将最后得出的结果存储进关系型数据库——>利用可视化界面进行展示。
4、日志收集系统
scribe、kafka、Flume
总结:
Agent:封装数据源,将数据源中的数据发送给collector,应该支持多种数据源,自定义数据源等。
Collector:接收多个agent的数据,并进行汇总后导入后端的store中
Store:中央存储系统,应该具有可扩展性和可靠性,应该支持当前非常流行的HDFS。
5、日志存储系统
HDFS:
(1)分布式存储系统
(2)支持在线扩展存储资源
(3)高容错性
(4)可扩展到几千甚至上万个节点
(5)用户群广泛,包括互联网、金融、银行
Hive
一些基本概念:
(1)离线计算
MapReduce
HIve
Pig
(2)近实时计算
Spark
Impala
(3)实时计算
Storm(在线计算,常用于广告推荐等)
冷数据处理:压缩、HDFS RAID
二、分布式推荐平台
1、基本流程
(1)数据源多样性
HDFS:用户端机日志
Mysql/Oracle:用户基本信息、用户购买记录等。
(2)数据加载
将不同的数据源中的数据导入Hbase
Hbase中以用户为单位组织数据
(3)实现方案
MapReduce并行导入
问题:与mysql并发连接数过多,解决:使用代理Amoeba for mysql
多线程自己实现
2、Hbase组织数据:
(1)以用户为单位组织数据
Rowkey为Uid
(2)将表分成多个column family
Basic feature:age birthday , address
Click/buy behavior:ids
(3)利用Hbase特有的特性
设置最大版本数,自动删除过去数据
根据uid获取某用户所有信息
易于扩展
3、模型:分析数据
(1)基于规则的广告推荐
(2)基于模型的广告推荐
逻辑回归:
输入性别、年龄、点击和购买记录
是否会购买商品X
(3)计算模型
MapReduce 或者Spark
4、服务层
Memcached redis(需要自己进行sharding、replication等)
Cassandra、couchbase(自动sharding和replication,但是需要调优和运维)
原文:https://www.cnblogs.com/learn-bigdata/p/10482168.html