1 ,知识回顾,大数据应用
·
一 ,知识回顾 :
1 ,mr 提交过程 : resourceManager ( 资源管理 + 任务调度 )
- ApplicationsManager 负责任务调度
- ResourceScheduler 负责资源管理

2 ,shuffle 过程 : ( mapTask + reduceTask + 环形缓冲区 )


3 ,zookeeper :
- 选举机制。
- 节点 : ( 临时,永久 ) ,( 普通节点,序列节点 )
- 监控服务上下线 : 只能监控几次 ( 某个服务器在 zk 创建临时节点,当他下线后,这个节点就消失,伏虎段就连接不到这个节点了。 )
- 一般部署几台 : 5 台
4 ,依赖于 zk 的组件 :
- hbase
- kafka
5 ,kafka 的 offset 是一消费者组的目录来存储的 ( 同组不重复消费 )
- 不重复消费 : 偏移量存储在消费者组文件夹下

- 思考 : 6 个分区,1 个消费者组,3 个消费者,怎么分配

- 每人两个
- 消费策略 :
1 ,RangeAssignor 策略 : 6 / 3 = 2 ,每人两个

2 ,RoundRobinAssignor 策略 : 根据消费者名字的 hashCode 排序,依次分配

- 重划分 : 如果消费者挂了
一旦分区个数变化,或者消费者个数变化,就会进行消费重新划分。 - 为什么要分组 :
如果一个消费者挂了,他的 offset 就没人知道了。
组的好处,一个消费者挂了的话,他的 offset 是以组为单位保存的,那么其它的组成员,还可以去 zk 中找到 offset ,因为,offset 的保存形式是在组的节点下面。
6 ,hive 优化 :
- 去重 : 不用 distinct ,要用 group by
- 数据仓库原理 : 以后详细讨论
- 三范式 : 以后详细讨论
7 ,flume :
- 总体介绍 : flume 是一根自来水管,流水 ( 数据流 ) 用的.
- 架构介绍 :

- 内部运行原理 :
source - channel 管理器 - 连接器链 - channel 管理器 - channel 选择器 - 如果必须 channel 报错,会回滚 - 如果非必须 channel 报错,不理他,继续走 - sink 组 :
1 ,模式一 : 容灾
同时给三个 sink 发数据
2 ,模式二 : 负载均衡
轮询发数据,先给 1 发,再给 2 发,再给 3 发 。

- event 构成 : header + body
header : 头部数据,k-v 对
body :真正的数据
8 ,flume 的 event 的 header :
把一个 event 放到指定 kafka 的 topic 的指定分区中。
9 ,flume 事务 :
- 错误 : 如果丢数据
- 反应 : 会重发数据
- 结果 : 单条数据不丢失,其他的数据,大量重复发送。
10 ,flume 容灾 :
必须同机房的多重拓扑结构
11 ,消息队列 :
- 很久之前 : consumer 直接对接 producer
- 隐患 : 数据量的突增,突减,会给服务器带来很大的压力
- 消息队列 : 消峰 ( 数据的峰值,不给服务器造成很大的压力) ,不丢数据。
12 ,kafka : 作用 ( 不丢数据,消峰 )

13 ,flink 优势 : 机器学习
机器学习 : 不断迭代的过程
14 ,滴滴 :
flink + go 语言
15 ,sqoop : 数据迁移工具
- 如何做的数据的批量导入
- 能做什么 : 关系型数据库 <–> hdfs
16 ,关系型数据库之间的数据迁移工具 :
- 有很多
- 最好用的 : DB2DB
17 ,更厉害的数据迁移工具 : DATAX
- 能够支持更多的源和目的地
- 功能 : 几乎可以做所有事情
- 开发者 : 阿里
- 怎么用 : 单节点,因为阿里没开源告诉我们,分布式怎么用


18 ,hbase : 先横向拆分,再纵向拆分 ( 只能存取,不能函数查询 )
- 横向 : 数据量增大的时候,region 分裂。
- 纵向 : 根据列簇,划分 store
- 列簇 : 越少越好
- 原因 :
1 ,一个列簇 = n × store
2 ,每个 store 都有 memoryStore
3 ,只要一个 memoryStore 满了,就全体刷新。 - 写数据 :先写到 wal( hlog 日志文件 ) 中一份,再写到 memoryStore ( 内存 ) 一份
- 读数据 :
1 ,去 zk ,得到 meta 所在 resionSServer。
2 ,去那台机器,找到 meta 表,查到我们需要的 rowkey 所在的 regionServer。
3 ,去那台机器,获取数据。
4 ,到了后,找到 blockCache ,看看之前有没有读取过。
5 ,有,就直接拿走。
6 ,没有,就去 memoryStore 找数据。
7 ,再没有,blockCache 上有所有的 hfile 的索引。
8 ,先确定数据在哪个 hfile 上
9 ,hfile 的 rowkey 是从大到小排序的
10,我们最后,就通过 rowkey 从 hfile 中读取数据。 - compact : 合并
1 ,将多个 storeFile 合并成一个。
2 ,minerCompact : 只管进行文件合并,不管删除。
3 ,hbase 对一条数据的操作,只发生在同一条 hfile 中。
4 ,majorCompact : 将所有 storeFile 合并起来,删除掉过期数据。 - minerCompact 和 majorCompact 比较
minerCompact : 只做磁盘文件合并
majorCompact : 把多个 storeFile 合并,重写一个新的 storeFile 文件,删除过期数据。造成大量磁盘 IO ,网络传输。 - 实际工作中 : 隔断时间,系统自动 compact
- 或者 : 关掉自动 compact ,我们在机器空闲的时候,手动去做 compact 操作。
二 ,大数据应用 : 平台数据分析 ( etl )
1 ,数据来源 :
绝大多数 : 日志
2 ,解决的问题 :
从海量的日志数据中提取出对平台发展有利的信息。
3 ,数据分类 :
- 业务数据 : mysql 中 ( 商品信息,用户信息,常用数据 )
- 用户行为数据 :
4 ,数据仓库 :分层 ( 可以分很多层,不一定多少层 )
- ODS 层 : Operational Data Store ( 贴元层 ) 原始数据
原始数据 :日志或者关系型数据库,并通过Flume、Sqoop、Kettle等etl工具导入到HDFS,并映射到HIVE的数据仓库表中。 - DAD 层 : data warehouse detail ( 细节数据层 ) 清洗过后的数据,建了 ( 事实表,维度表 )
过滤 : 将 ods 层的数据,处理后得到的,数据清洗( 垃圾数据 ),数据脱敏( 电话,住址 )
事实表,维度表,维度建模。 - DWB:data warehouse base ( 基础数据层 )
存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层。 - DWS 层 : data warehouse service ( 服务数据层 ) 有效数据表
整合汇总成分析某一个主题域的服务数据,一般是宽表。 - DM 层 : 从 dws 中的表中,查数据,可以做报表了。

5 ,数据仓库 :作用
把公司的所有数据,全部拿过来,为不同的部门提供数据支持。
6 ,宽表 :
- 作用 :很多张表合并到一起,组成一张大表。
- 目的 : 一次 join 就是一个 mr 。
- 关系型数据库 : 表数据不冗余。
- 数据仓库 : 通过增加数据的冗余,提高查询性能。
通过数据冗余,减少 join 操作。 - 根本原因 :
1 ,mysql 需要考虑存储空间,资源宝贵。
2 ,hive 不需要考虑存储空间,我们的空间无限大。 - 存储什么数据 :
1 ,mysql : 最新数据。
2 ,hive : 全部的历史数据。
7 ,数据仓库 : 包括什么

三 ,大数据应用 : 产品数据分析
1 ,目前互联网创业 :
手机 APP
2 ,怎么看手机火不火 :
- 日活 : 每天活跃用户
- 日新 : 每天新增的用户
3 ,问题 : 怎么求日新 ?
- 通过用户 id ,聚合。
- 查询 : 这个用户的最早启动时间。
- 确定 : 如果是今天,那么,他就是日新。
4 ,SDK : 日志采集系统
- app 启动日志。
- 页面跳转日志。
- 错误日志。
…
5 ,离线分析 :
- 采集 : flume
- etl ( 清洗 ) : spark / mr ( 可以在进入 hive 前,或者进入 hive 后 )
- 日志存储
1 ,离线 : hive ( 存储格式 : 行,列 - parquet ),如果用 spark ,就用 parquet
2 ,实时 : mysql ,hbase ( 这两个没有可比性 )

6 ,产品信息分析 :
- 新增
- 活跃 : 去重
- 一次也没有活跃过
- 启动次数 : 不去重
- 版本分布统计
- 留存率 : 上周注册,本周依然使用
- 新鲜度 : 新增用户 / 活跃用户

四 ,大数据应用 : 用户行为分析
1 ,用户画像

2 ,根据用户行为,给他更好的服务
3 ,提升网站对于用户的粘性
4 ,步骤 :

5 ,用户行为 :
- 点击
- 输入
6 ,快消品 :
卫生纸
7 ,非快消品 :
手机,电视,买过以后,不适合再次推荐
8 ,典型的算法公司 :
- 公司名 :北京微播视界科技有限公司
- 产品 : 火山小视频,抖音,今日头条
更多推荐
所有评论(0)