【推荐阅读】滴滴出行的数据架构和信息流处理思路解析

 

 

截止到今年7月,滴滴注册用户已超过5.5亿,年运送乘客达100亿人次,每日处理数据4875+TB,日定位数超过150亿,每日路径规划请求超过400亿次。面对庞大的数据量,滴滴的实时计算、数据存储和数据清洗都基本作到了行业典范。下面咱们来了解一下滴滴的数据库框架设计和信息流处理流程。前端

 首先,滴滴出行的后台使用一套环境,前端按照系统分红了两个WEB项目(一个是订单数据监控系统,一个是出行数据运营系统)进行数据展现,其数据流处理流程以下:java

 

 

       
   
 
     
 
   

  

 

首先咱们剖析一下智慧出行的底层数据架构

1、项目架构及解决方案论述数据库

         1.1 经过binlog方式实时梳理业务库高QPS压力json

         1.2 内置源码模块,细粒度监控Spark做业,失败及时邮件报警后端

         1.3 覆盖源码自定义数据源加载,从源头进行列剪枝设计模式

         1.4 自定义维护Kafka的偏移量管理,实现exactly once缓存

         1.5 实现先后端rest接口的开发规范服务器

2、项目模块搭建网络

         2.1 先后端模块分离架构

         2.2 项目依赖的版本规范

3、项目平台搭建(Cloudera)

         3.1 Cloudera的服务搭建

         3.2 Cloudera的Hadoop生态搭建

         3.3 Cloudera的分布式消息系统搭建

4、业务库高并发解决方案介绍和架构实现

         4.1业务库binlog的落地

         4.2实时抓取binlog并解析到分布式消息队列

5、项目common模块的开发实现

而后咱们针对滴滴智慧出行各模块数据业务制定了一份“学习方案”,若是你已经零零散散学习了不少大数据相关知识,但始终没有一个相对完整的知识体系,那必定要读完哦~

* 1、智慧出行网约车服务体系建设的开发

*1、实时订单统计

         *1.1订单数据回放

         *1.2数据回放的断点续传解决方案

         *1.3实时订单数据统计(订单状况、乘车人数状况)

*2、全域订单轨迹监控

         *2.1实时订单轨迹监控

         *2.2历史订单轨迹回放

* 2、智慧出行之虚拟车站、出行订单、出行迁途、订单报告

*1、虚拟车站重现

         *1.1服务端统计实现

         *1.2 Java中台查询

*2、智慧出行-订单监控

*2.1每一个城市下实时订单统计

*三、智慧出行-出行迁途

*3.1 Java中台出发地和目的地的统计

*3.2出发地和目的地的统计的接口发布

*4、智慧出行-订单报告

         *4.1专车、拼车、顺风车等分类统计

         *4.2车型查询接口的发布

         *4.3车型关联订单的统计

         *4.4车型关联订单查询接口的发布

*5、智慧出行-订单查询

         *5.1根据产品线、订单类型、交通类型、订单ID、城市查询订单.

*6、智慧出行-出行活跃统计

         *6.1出行活跃区域统计

*7、智慧出行-供需分析

         *7.1出行供需分析

*8、智慧出行-疲劳驾驶报警

         *8.1司机疲劳驾驶报警

3、智慧出行之项目数据的接收和落地

  1. 基于binlog进行数据实时同步

1.1 Maxwell的语法讲解

1.2 Maxwell解析binlog到Kafka

  1. 代码实现HBase的负载均衡处理

2.1 HBase的痛点之热点问题

2.2 HBase的热点会形成什么问题

2.3出现热点的缘由剖析

2.4解决热点问题

3、Kafka的offset自主管理实现Exactly-once语义实现

         3.1为何自主维护offset

         3.2自主维护offset的实现

4、Kafka数据生命周期到期后找不到数据偏移量的解决方案

         4.1生产中Kafka会遇到的数据fetch不到的异常解决方案

         4.2解决生产中的Kafka生命周期问题

5、经过反射实体数据落地到HBase

         5.1解析Kafka中的json数据集

         5.2实例与数据集映射成集合

         5.3实时同步事务操做结果到HBase

4、基于源码进行任务的监控和调优

1、内置Spark任务监控,实现细粒度任务的监控和异常报警

         1.1监控整个application开始执行状态

         1.2监控整个application结束的状态

         1.3监控整个Job开始执行状态

         1.4监控整个Job结束状态

         1.5监控Spark stage提交时状态

         1.6监控Spark stage完成时状态

         1.7监控Spark task开始时状态

         1.8监控Spark task完成时状态

         1.9监控整个做业的内存和磁盘变化

         1.10监控整个job上下文环境

         1.11监控rdd缓存变化状态

         1.12监控executor状态

2Spark做业监控异常邮件报警

  1. Spark streaming的限流、压背、冷启动
  2. 开启动态资源分配(从平台到代码)
  3. 实现Spark streaming的高可用

五:智慧交通数据大屏之订单数据监控
1、数据大屏之订单数据统计
1.1基于Spark源码实现自定义HBase的数据源的读写操做
1.2第1屏幕之地图(各城市车辆分布和各城市订单)的数据计算和落地HBase
1.3基于phoenix实现各城市车辆分布和各城市订单接口的发布
1.4第1屏幕之订单汇总表(总、月、周、日) 、 订单累计里程总数的数据计算和数据落地
1.5第1屏幕之实现订单汇总表(总、月、周、日) 、 订单累计里程总数的接口发布

6、智慧交通数据大屏之用户统计分析
1、数据大屏之用户总数和注册数
1.1第1屏幕之订单总数 、 注册总数 、 收入总数的计算和结果数据落地
1.2订单总数 、 注册总数 、 收入总数的接口发布
二、据大屏之活跃用户留存分析
2.1各城市当日新增用户数、当日活跃用户的计算和结果数据落地
2.2各城市当日新增用户数、当日活跃用户的接口发布
2.3平台注册用户总数、当日新增注册用户、本周内新增注册用户、当月新增注册用户的计算和结果数据落地
2.4 平台注册用户总数、当日新增注册用户、本周内新增注册用户、当月新增注册用户查询接口的发布
2.5留存率的计算和结果数据落地
2.6留存率的查询接口的发布
2.7活跃用户的计算和结果数据落地
2.8活跃用户的查询接口的发布

7、 智慧交通数据大屏之订单热力图
1、数据大屏之订单热力图
1.1当日热区订单、当日新增热区订单的计算和落地
1.2当日热区订单、当日新增热区订单接口的发布
1.3平台订单完成率、司机订单完成率、各城市的司机注册数(日/周/月/季/年)的计算和落地
1.4平台订单完成率、司机订单完成率、各城市的司机注册数查询接口发布
1.5出行热力图的计算和数据落地
1.6出行热力图的接口发布

8、智慧出行之Hadoop性能提高的原理

1DataNode与NameNode心跳流程

2、元数据管理

         2.1元数据管理的双缓冲机制

         2.2元数据管理流程

9、智慧出行之NameNode的Bug修复

1、HDFS写数据流程

2、对超高并发致使NameNode短暂不工做Bug修复

         2.1双缓冲机制回顾

         2.2 NameNode不工做的Bug分析

3NameNode Full GC致使异常退出Bug修复

       3.1元数据同步流程回顾

         3.2 NameNode的Full GC 的bug分析

10、智慧出行之源码级NameNode优化

  1. 对DataNode进行锁优化
  2. 优化NameNode元数据写流程
  3. 总结HDFS源码中用到的设计模式

11、智慧出行之分布式消息系统深度原理深度剖析

1、分布式消息系统之Kafka原理深度剖析

1.1 Kafka架构原理

1.2 ISR机制原理

1.3零拷贝技术原理

1.4 Zookeeper选举原理

1.5副本同步机制原理深度剖析

12、智慧出行之分布式消息系统源码深度剖析1

1、分布式消息系统之Kafka原理深刻剖析

         1.1Kafka的LEO和HW的更新机制

         1.2 offset更新原理

         1.3 Kafka集群运维管理

2、分布式消息系统KafkaProducer源码剖析

         2.1 Kafka源码深度剖析-KafkaProducer初始化

         2.2 KafkaProducer元数据管理

         2.3 Producer核心流程初探

         2.4 KafkaProducer加载元数据

十3、智慧出行之分布式消息系统源码深度剖析2

  1. 分布式消息系统Kafka Server端的网络

1.1 Acceptor线程是如何启动的

1.2 用于处理请求链接的Processor是如何启动的

1.3 Processor线程是如何处理completedReceives里的请求的

1.4 RequestQueue队列里的请求是如何被处理的

1.5 Request是如何被处理的

1.6服务端发送响应的准备工做

1.7响应消息是如何发送给客户端的

1.8 Kafka的网络设计总结

2、Kafka日志管理

1.1 ReplicaManager写数据入口初探

1.2 LogManager是什么

1.3 LogManager启动后干什么

1.4 Log对象的append总流程窥探

1.5 如何用内存映射写稀松索引

1.6 Kafka总结

完整的学习方案还有SparkStreaming性能调优、数据查询平台之SQL重构及服务发现、多任务自适配、自定义Spark多数据源Source和Sink、数据平台前中台实现、YARN的性能调优、HDFS的调优、HBase的调优、SparkSQL的调优、服务器的调优等内容。

其实以上你看到的都是经滴滴出行认证的开课吧后厂理工学院推出的“滴滴资深大数据工程师培养计划”课程大纲,本培养计划中订单、车辆分布和收入总数等数据均采用滴滴盖亚开放数据计划脱敏后的开放数据集实现,此类功能点在大纲中用*标注

若是你从事java开发多年,想转行大数据行业

若是你已经学习了不少零散的大数据知识,缺少实战经验,

若是你身处大数据开发岗位想要升职加薪,

那么“滴滴出行人才培养计划”就是一个提高本身的好机会

必定必定必定要注意!!!

知足如下条件方可报名参与大厂培训计划”选拔

1.有2年以上Java开发经验

2.有必定的大数据技术分布式系统的理论基础

后厂理工学院滴滴出行人才培养计划仅招生199,经过测试才能加入培训计划!

扫描下方二维码领取完整课程大纲

参加滴滴资深大数据工程师培养计划

相关文章
相关标签/搜索