阿里搜索離線大數據平臺架構sql
首先咱們來看一張離線數據處理系統(Offline System)的是一部圖,以此來思考什麼是搜索離線?架構
什麼是離線?在阿里搜索工程體系中咱們把搜索引擎、在線算分、SearchPlanner等ms級響應用戶請求的服務稱之爲「在線」服務;與之相對應的,將各類來源數據轉換處理後送入搜索引擎等「在線」服務的系通通稱爲「離線」系統。商品搜索的業務特性(海量數據、複雜業務)決定了離線系統從誕生伊始就是一個大數據系統,分佈式
大數據系統有如下的特色,任務模型上區分全量和增量、須要支持多樣化的輸入和輸出數據源、須要提供必定能力的數據處理能力,全量是指將搜索業務數據所有從新處理生成,並傳送給在線引擎,通常是天天一次,增量是指將上游數據源實時發生的數據變化更新到在線引擎中,性能方面有較高要求。全量須要極高吞吐能力,確保數以億計的數據能夠在數小時內完成。增量則須要支持數萬TPS秒級的實時性,還須要有極高的可用性。oop
阿里商品搜索體系從使用hadoop+habase的淘寶搜索階段到組件化開發的離線平臺階段,整個搜索離線系統的演進是沿着性能和效率兩條主線,以業務和技術爲雙驅動,一步一步走到今天。這是一個技術與業務高度融合互動,互相促進發展的典型樣例 離線平臺的技術架構展開,主要分爲平臺流程以及計算和存儲架構等幾個方面。離線平臺技術組件結構的組件主要分爲幾個方面,分佈式任務調度平臺Maat,執行引擎,Flink的阿里內部版本Blink等,阿里採用基於hbase的存儲結構和基於flink的計算架構,採用hbase作爲離線系統的內部數據存儲,成功解決了天天全量時對上游Mysql形成很大壓力的問題,大幅度的提高了總體系統的吞吐,採用blink能夠直接完成生成HFile的任務,調度能夠大幅的節省計算資源,提升集羣效率。組件化
搜索離線數據處理是一個典型的海量數據處理的模型,他將批次處理和實時計算,搜索內部技術結合開源大數據存儲和計算系統,針對自身業務和技術特色構建了搜索離線平臺,提供複雜業務場景下單日批次處理千億級數據,秒級實時百萬TPS吞吐的計算能力。離線平臺目前支持不一樣業務線的搜索業務需求,大幅度提升業務執行的效率成爲了搜索平臺中的重要組成部分性能