知名大廠如何搭建大資料平臺&架構
今天我們來看一下淘寶、美團和滴滴的大資料平臺,一方面進一步學習大廠大資料平臺的架構,另一方面也學習大廠的工程師如何畫架構圖。通過大廠的這些架構圖,你就會發現,不但這些知名大廠的大資料平臺設計方案大同小異,架構圖的畫法也有套路可以尋覓。
淘寶大資料平臺
淘寶可能是中國網際網路業界較早搭建了自己大資料平臺的公司,下圖是淘寶早期的 Hadoop 大資料平臺,比較典型。
淘寶的大資料平臺基本也是分成三個部分,上面是資料來源與資料同步;中間是雲梯 1,也就是淘寶的 Hadoop 大資料叢集;下面是大資料的應用,使用大資料叢集的計算結果。
資料來源主要來自 Oracle 和 MySQL 的備庫,以及日誌系統和爬蟲系統,這些資料通過資料同步閘道器伺服器匯入到 Hadoop 叢集中。其中 DataExchange 非實時全量同步資料庫資料,DBSync 實時同步資料庫增量資料,TimeTunnel 實時同步日誌和爬蟲資料。資料全部寫入到 HDFS 中。
在 Hadoop 中的計算任務會通過天網排程系統,根據叢集資源和作業優先順序,排程作業的提交和執行。計算結果寫入到 HDFS,再經過 DataExchange 同步到 MySQL 和 Oracle 資料庫。處於平臺下方的資料魔方、推薦系統等從資料庫中讀取資料,就可以實時響應使用者的操作請求。
淘寶大資料平臺的核心是位於架構圖左側的天網排程系統,提交到 Hadoop 叢集上的任務需要按序按優先順序排程執行,Hadoop 叢集上已經定義好的任務也需要排程執行,何時從資料庫、日誌、爬蟲系統匯入資料也需要排程執行,何時將 Hadoop 執行結果匯出到應用系統的資料庫,也需要排程執行。可以說,整個大資料平臺都是在天網排程系統的統一規劃和安排下進行運作的。
DBSync、TimeTunnel、DataExchange 這些資料同步元件也是淘寶內部開發的,可以針對不同的資料來源和同步需求進行資料匯入匯出。這些元件淘寶大都已經開源,我們可以參考使用。
美團大資料平臺
美團大資料平臺的資料來源來自 MySQL 資料庫和日誌,資料庫通過 Canal 獲得 MySQL 的 binlog,輸出給訊息佇列 Kafka,日誌通過 Flume 也輸出到 Kafka。
Kafka 的資料會被流式計算和批處理計算兩個引擎分別消費。流處理使用 Storm 進行計算,結果輸出到 HBase 或者資料庫。批處理計算使用 Hive 進行分析計算,結果輸出到查詢系統和 BI(商業智慧)平臺。
資料分析師可以通過 BI 產品平臺進行互動式的資料查詢訪問,也可以通過視覺化的報表工具檢視已經處理好的常用分析指標。公司高管也是通過這個平臺上的天機系統檢視公司主要業務指標和報表。
美團大資料平臺的整個過程管理通過排程平臺進行管理。公司內部開發者使用資料開發平臺訪問大資料平臺,進行 ETL(資料提取、轉換、裝載)開發,提交任務作業並進行資料管理。
滴滴大資料平臺
滴滴大資料平臺分為實時計算平臺(流式計算平臺)和離線計算平臺(批處理計算平臺)兩個部分。
實時計算平臺架構如下。資料採集以後輸出到 Kafka 訊息佇列,消費通道有兩個,一個是資料 ETL,使用 Spark Streaming 或者 Flink 將資料進行清洗、轉換、處理後記錄到 HDFS 中,供後續批處理計算。另一個通道是 Druid,計算實時監控指標,將結果輸出到報警系統和實時圖表系統 DashBoard。
離線計算平臺架構如下。滴滴的離線大資料平臺是基於 Hadoo 2(HDFS、Yarn、MapReduce)和 Spark 以及 Hive 構建,在此基礎上開發了自己的排程系統和開發系統。排程系統和前面其他系統一樣,排程大資料作業的優先順序和執行順序。開發平臺是一個視覺化的 SQL 編輯器,可以方便地查詢表結構、開發 SQL,併發布到大資料叢集上。
此外,滴滴還對 HBase 重度使用,並對相關產品(HBase、Phoenix)做了一些自定義的開發,維護著一個和實時、離線兩個大資料平臺同級別的 HBase 平臺,它的架構圖如下。
更多大資料架構文章,請關注《大資料技術進階》微信公眾號
來自於實時計算平臺和離線計算平臺的計算結果被儲存到 HBase 中,然後應用程式通過 Phoenix 訪問 HBase。而 Phoenix 是一個構建在 HBase 上的 SQL 引擎,可以通過 SQL 方式訪問 HBase 上的資料。
小結
你可以看到,這些知名大廠的大資料平臺真的是大同小異,他們根據各自場景和技術棧的不同,雖然在大資料產品選型和架構細節上略有調整,但整體思路基本上都是一樣的。
不過也正是這種大同小異,讓我們從各個角度更加了解大資料平臺架構,對大資料平臺架構有了更加深刻的認知