知名大廠如何搭建大數據平臺&架構

来源:https://www.cnblogs.com/xiaodf/archive/2019/09/30/11611970.html
-Advertisement-
Play Games

今天我們來看一下淘寶、美團和滴滴的大數據平臺,一方面進一步學習大廠大數據平臺的架構,另一方面也學習大廠的工程師如何畫架構圖。通過大廠的這些架構圖,你就會發現,不但這些知名大廠的大數據平臺設計方案大同小異,架構圖的畫法也有套路可以尋覓。 淘寶大數據平臺 淘寶可能是中國互聯網業界較早搭建了自己大數據平臺 ...


今天我們來看一下淘寶、美團和滴滴的大數據平臺,一方面進一步學習大廠大數據平臺的架構,另一方面也學習大廠的工程師如何畫架構圖。通過大廠的這些架構圖,你就會發現,不但這些知名大廠的大數據平臺設計方案大同小異,架構圖的畫法也有套路可以尋覓。

淘寶大數據平臺

淘寶可能是中國互聯網業界較早搭建了自己大數據平臺的公司,下圖是淘寶早期的 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 上的數據。

小結

你可以看到,這些知名大廠的大數據平臺真的是大同小異,他們根據各自場景和技術棧的不同,雖然在大數據產品選型和架構細節上略有調整,但整體思路基本上都是一樣的。

不過也正是這種大同小異,讓我們從各個角度更加瞭解大數據平臺架構,對大數據平臺架構有了更加深刻的認知。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • samba + OPENldap 搭建文件共用伺服器 這裡我使用的是 samba(文件共用服務) v4.9.1 + OPENldap(後端資料庫軟體) v2.4.44 + smbldap tools(後端資料庫管理軟體) v0.9.11 + CentOS7。 如果有不同,可能會有部分問題。 註: 1 ...
  • IE瀏覽器遠程代碼執行高危漏洞(CVE-2019-1367)加固遇到的問題 一、背景介紹 Internet Explorer,是微軟公司推出的一款網頁瀏覽器。用戶量極大。9月23日微軟緊急發佈安全更新,修複了一個影響IE瀏覽器的遠程代碼執行漏洞。由谷歌威脅分析小組發現此漏洞,據稱該漏洞已遭在野利用。 ...
  • 博主做過比較多項目的archive腳本編寫,對於這種刪除數據的腳本開發,肯定是一開始的話用最簡單的一個delete語句,然後由於部分表數據量比較大啊,索引比較多啊,會發現刪除數據很慢而且影響系統的正常使用。然後就對delete語句進行按均勻數據量分批delete的改寫,這樣的話,原來的刪除一個表用一 ...
  • 所謂事務是用戶定義的一個數據操作序列,這些操作可作為一個完整的工 作單元,要麼全部執行,要麼全部不執行,是一個不可分割的工作單位。 事務中的操作一般是對數據的更新操作,包括增、刪、改。 ...
  • [TOC] # 1. 前言 在資料庫安全的生命周期中, 包括: 保護、檢測、響應和補救。檢測的核心就是審計(Audit)。有些情況下,審計不僅僅用於檢測不好的行為,也作為對整個資料庫的行為進行監控而存在。審計能夠告訴我們誰訪問了什麼、在什麼地方、什麼時間、採用了何種方式。 有效的審計不僅僅意味著安全 ...
  • 背景 昨天,關於價格詳情介面又來了一個小需求,而且有點特別。價格顯示:改為保留兩位小數,沒錯,就是保留兩位小數。大家是不是想說這沒啥特別的。。。資料庫都有函數搞定了。例如四捨五入的ROUND(x,d),直接截取的TRUNCATE(x,d),還可以利用類型轉換CONVERT(value,type)等等 ...
  • -- mysql安裝 -- https://www.mysql.com/downloads/ 終端執行命令 (可參考本筆記MySQL環境搭建-mysql 8.0.13 解壓版安裝配置方法圖文教程) mysql 教學demo --命令行輸指令創建表 http://www.forta.com/books ...
  • Aborted_clients和 Aborted_connects狀態變數詳解 By:授客 QQ:1033553122 狀態變數定義 Aborted_clients 因客戶端消亡時未恰當的關閉連接而引起的被中斷連接數 The number of connections that were abort ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...