吾爱编程
标题:
Spark企业级实战项目:知名手机厂商用户行为实时分析系统
[打印本页]
作者:
admin
时间:
2019-2-18 18:07
标题:
Spark企业级实战项目:知名手机厂商用户行为实时分析系统
c_20.jpg
(31.14 KB, 下载次数: 1098)
下载附件
2019-2-18 18:05 上传
课程特色
1、基于知名手机厂商线上项目需求进行讲解,快速提升Spark项目经验,解决手机应用实时分析、实时查询需求。
2、涵盖大数据实时计算一体化的处理流程,包括Flume采集不同来源不同类型的日志(用户行为日志,Nginx日志等等),Kafka消息队列缓存数据并提供高并发的处理以及供后续多种系统消费数据,spark-streaming根据业务需求实时计算数据,Hbase用来存储大数据量和低延迟的访问。
3、特别注重企业级Spark项目开发的系统性、完整性,拒绝小demo小案例,提升视野与高度。
课程大纲
一、需求分析
1.1背景 1、如何更好的了解用户的行为以及属性以便更好的服务用户是当今互联网公司必须要做的事情,我们可以收集用户在手机上用了哪些应用,当然这个是需要经过用户同意的,如果用户同意上报自己的数据,那么根据用户的使用情况会给用户一些奖励,比如成长值、各种特权(优惠券、电影票等)、游戏币、游戏礼包,进一步刺激用户的使用情况,同时让用户实时看到应用使用情况。
2、随着业务的规模以及用户量越来越大,对系统接口的响应情况需要实时监控,比如PV、UV、接口响应时间;
1.2总体要求 1、搭建高可用的实时计算框架,在框架的中的每个部分必须是高可用的
2、实时计算用户手机中App应用的使用情况,比如每小时、每天手机APP应用的使用时长、流量消耗等。
3、实时计算每个接口的PV、UV、响应时间
4、对用户的请求做到毫秒级响应
1.3难点分析 1、业务系统很多,如何实时聚合日志并对业务侵入性很小,这么多的系统的日志格式肯定都不一样,统一聚合后如何区分日志;
2、数据量很大如何达到高并发,让处理速度远高于写入速度
3、如何分布和处理数据才能对后续的系统减少压力,比如处理好的数据写入hbase,如何减少写次数;
4、我们的系统是大数据和业务系统紧密结合的,那么在大数据大量用户的情况下如何做到低延时;
1.4解决问题的思路 1、需求分析并找出实现难点
2、设计每个难点的详细解决方案
3、程序或者脚本编码
4、项目测试
5、项目部署
6、项目交付
二、知识要点
2.1Flume要点 1、什么是agent,组件有哪些
2、支持的拓扑结构有哪些,怎么实现负载均衡
3、根据我们的实战项目该怎么选择source、channel、sink
4、根据我们的实战项目怎么设计拓扑以达到高可用
5、如何自己开发***来实现我们特殊的要求,比如区分日志、均匀的写kafka分区
6、写kafka是同步写还是异步写
7、KafkaSink配置
2.2Kafka要点 1、kafka体系结构:broker、topic、partition
2、kafka的高可用
3、建立topic,创建分区,分区副本设置
4、kafka高级消费者、低级消费者
5、查看分区消息量以及消费进度
2.3spark-streaming要点 1、kafka低级消费者stream还是高级消费者stream
2、各种算子的功能
3、如何实现二次排序
4、根据业务情况如何优化计算逻辑使计算结果对后续压力减少
2.4Hbase要点 1、Hbase的数据模型
2、计数器、过滤器
3、根据我们的项目需求如何设计rowkey和表结构
4、如何批量写hbase减少网络通信时间
5、项目开发中如何选择合适的***以避免全表扫描
三、难点攻克
3.1难点攻克1:如何收集不同业务系统的日志 1、不同的业务员系统由不同的团队开发运维,故产生的日志格式以及内容都不一样
2、每个业务系统会有多个日志机器,所以多个业务系统可能至少有十几台日志服务器
3、日志服务器上面一般都有业务系统的服务再跑,如何在采集日志的时候不影响业务系统
4、多个业务系统的日志被聚合在一起后如何在后续计算中区分日志
3.2难点攻克2:数据容错和提高并发处理能力 1、业务系统产生的数据都是海量的,少则千万多则上亿,数据容错性如何保障,我们辛苦采集的数据不能再处理之前丢失;
2、这些海量日志如何被均匀发布到多台机器上来提高并发处理能力
3、采集的数据不只为一种计算需求所使用,数据要重复被不同的需求使用,那么如何保证
3.3难点攻克3:减少写hbase的读写次数 1、我们不能每条日志处理后都写一次hbase,那么怎么减少写hbase的次数又不失准确性呢
2、hbase里面的结果数据是要被查询的,如何减少查询次数又能满足需求
四、解决方案设计
4.1技术选型 1、Flume:内置十几种数据采集方式、几种存储队列、十几种数据写出方式,组件轻量不会影响业务系统并吞吐量很高,消息可带消息头可区分日志来源
2、Kafka:高可用高并发的分布式消息队列,数据一旦进入kafka则不会丢失,并且数据可用重复使用,存储日志分布在集群各个机器上提高后续并发处理能力
3、spark-streaming:基于内存的流式计算框架,可用在内存中对数据批量快速处理,具有高吞吐量低延迟的特效
4、Hbase:亿级行百万列并可达到毫秒级查询的数据库,可以满足毫秒级低延迟查询
4.2架构设计 构架分层设计:
1、日志采集层
2、日志存储层
3、日志处理层
4、结果存储层
5、查询接口
4.3部署方案 1、拓扑图,哪些服务部署在哪些机器上
2、高可用方案
hadoop hdfs HA
hadoop resource HA
Flume高可用拓扑
Kafka高可用集群
Spark on YARN
Hbase HA
4.4业务日志采集 1、提供Flume全拓扑图
2、采用两层agent设计
3、第一层在业务系统服务器上部署
4、第二层做日志聚合
五、集群部署
1、Zookeeper集群
2、Hadoop YARN集群
3、Hbase集群
4、Kafka集群
5、Spark 集群
六、业务实现
6.1模拟搭建业务系统 1、搭建tomcat、nginx服务器
2、编写服务器接口
3、模拟访问接口产生用户行为日志和nginx日志
6.2Flume采集agent 1、配置采集agent的Source、Channel、Sink、sinkGroup
2、采用负载均衡模式可达到高可用
6.3Flume聚合agent 1、编写自定义***区分业务类型
2、配置聚合agent的Source、Channel、Sink
3、配置写入kafka的生产者
4、如何让日志均匀的分布到Kafka分区
6.4编写Spark-streaming程序 1、根据需求创建hbase表、设计rowkey
2、建立读取topic的DStream
3、根据需求组合各种算子统计数据,如 map/mapRoPair/filter/reduceByKey/groupByKey/sortByKey/transform
4、将消费进度写入zookeeper以便监控消费情况
5、写入HBASE
6、查看监控页面以查看作业执行情况
6.5Hbase Java访问数据 1、编写访问Hbase的Java接口供实时访问
2、根据rowKey查询、范围查询
3、使用拦截
6.6spark程序提交 1、YARN程序简介
2、提交作业的不同方式
七、项目总结
大数据项目需要综合运用各种技术 1、介绍实际生产环境的注意事项
2、谈谈项目需要改进的地方
3、各个项目中遇到的坑
下载地址:
作者:
FunnyKing
时间:
2019-2-18 20:13
啥也不说了,楼主就是给力!支持吾爱编程网!
作者:
uuuuoooo
时间:
2019-2-18 21:52
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
作者:
sunboy166
时间:
2019-2-18 23:23
不管你信不信,反正我是信了。支持吾爱编程网!
作者:
wa_ljb
时间:
2019-2-19 10:03
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
作者:
漫游者
时间:
2019-2-19 16:01
不管你信不信,反正我是信了。支持吾爱编程网!
作者:
jzkangta
时间:
2019-2-22 09:16
膜拜神贴,后面的请保持队形~支持吾爱编程网!
作者:
mas曹
时间:
2019-3-2 20:26
Spark企业级实战项目:知名手机厂商用户行为实时分析系统
作者:
maste86
时间:
2019-4-1 20:53
好东西一定要支持!!!!!!!!!!!!!!!!!
作者:
failureone
时间:
2019-4-3 10:32
RE: Spark企业级实战项目:知名手机厂商用户行为实时分析系统 [修改]
作者:
小兵123
时间:
2019-4-3 14:46
Spark企业级实战项目:知名手机厂商用户行为实
作者:
阳光下de微笑17
时间:
2019-4-5 09:36
膜拜大神,支持吾爱编程,希望越来越好
作者:
rover99x
时间:
2019-4-14 08:39
果断MARK,前十有我必火!支持吾爱编程网!
作者:
galtg
时间:
2019-4-15 11:04
感谢楼主分享
作者:
gig641
时间:
2019-6-27 16:13
不管你信不信,反正我是信了。支持吾爱编程网!
作者:
858984388
时间:
2019-10-14 20:59
哥顶的不是帖子,是寂寞!支持吾爱编程网!
作者:
policy12
时间:
2019-10-14 22:42
提交作业的不同方式
七、项目总结
大数据项目需要综合运用各种技术 1、介绍实际生产环境的注意事项
2、谈谈项目需要改进的地方
3、各个项目中遇到的坑
作者:
wpzkhq
时间:
2020-1-21 09:43
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
作者:
zuibunan
时间:
2020-1-21 23:27
啥也不说了,楼主就是给力!支持吾爱编程网!
作者:
laocao
时间:
2020-5-19 19:50
支持支持支持支持支持支持支持支持
作者:
lin23871
时间:
2020-5-31 21:46
啥也不说了,感谢楼主分享哇!
作者:
zanguixuan
时间:
2020-6-1 17:12
啥也不说了,楼主就是给力!支持吾爱编程网!
作者:
yyyjjjaaa
时间:
2020-6-29 10:58
支持吾爱编程网
作者:
water24
时间:
2020-6-29 16:52
xuexixuexi
作者:
Yoshotm
时间:
2021-6-5 00:27
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
作者:
root1235
时间:
2021-11-16 09:40
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
作者:
modi
时间:
2023-3-2 09:51
看了LZ的帖子,我只想说一句很好很强大!支持吾爱编程网!
欢迎光临 吾爱编程 (http://www.52pg.net/)
Powered by Discuz! X3.2