【推薦閱讀】滴滴出行的數據架構和信息流處理思路解析

 

 

截止到今年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,經過測試才能加入培訓計劃!

掃描下方二維碼領取完整課程大綱

參加滴滴資深大數據工程師培養計劃

相關文章
相關標籤/搜索