日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

10年+,阿里沉淀出怎樣的搜索引擎?

 


阿里妹導(dǎo)讀:搜索引擎是阿里的10年+沉淀,具有很高的技術(shù)/業(yè)務(wù)/商業(yè)價值。1688很多場景都借助了搜索中臺的能力,基于此,以1688主搜為例介紹搜索全鏈路知識點,希望對你有所借鑒,有所啟發(fā)。

一、整體架構(gòu)

搜索引擎分為數(shù)據(jù)源聚合(俗稱dump)、全量/增量/實時索引構(gòu)建及在線服務(wù)等部分,以Tisplus為入口經(jīng)由Bahamut(Maat進(jìn)行工作流調(diào)度)->Blink->Hdfs/Swift->BuildService->Ha3->SP->SW等階段對客戶提供高可用/高性能的搜索服務(wù)。其中數(shù)據(jù)源聚合在tisplus平臺和Blink平臺完成,Build service和Ha3在suez平臺完成,SP和SW通過drogo進(jìn)行部署。具體架構(gòu)圖如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

二、Tisplus

1688目前有spu、cspu,company,buyoffer和feed等引擎及offer離線在tisplus運維,該平臺主要ha3和sp的搭建和維護(hù),大體架構(gòu)如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

在日常維護(hù)中偶爾會遇到數(shù)據(jù)源產(chǎn)出失敗的問題,主要是由于數(shù)據(jù)源表權(quán)限過期及zk抖動等原因。性能方面,在集團(tuán)內(nèi)搜索中臺團(tuán)隊的引入Blink Batch模型后,dump執(zhí)行時間被縮短,具體指標(biāo)如下(以buyoffer引擎為例):

10年+,阿里沉淀出怎樣的搜索引擎?

 

在tisplus平臺,離線dump的入口如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

DAG數(shù)據(jù)源圖示例:

10年+,阿里沉淀出怎樣的搜索引擎?

 

下面主要說下離線dump數(shù)據(jù)源處理流程,包括Bahamut、Maat和數(shù)據(jù)輸出。

2.1 Bahamut——數(shù)據(jù)源圖處理

Bahamut是離線數(shù)據(jù)源處理的組件平臺,將web端拼接的數(shù)據(jù)圖通過jobManager翻譯成可執(zhí)行的sql語句。目前Bahamut包含的組件有四類,分別是:

  1. 數(shù)據(jù)輸入:datasource(支持tddl和odps)
  2. KV輸入:HbaseKV(Hbase數(shù)據(jù)表)
  3. 數(shù)據(jù)處理:Rename(數(shù)據(jù)字段重命名),DimTrans(使用1對多的數(shù)據(jù)聚合),F(xiàn)unctions(簡單字段處理),Selector(字段選擇),UDTF(數(shù)據(jù)邏輯處理),Merge(數(shù)據(jù)源聚合),Join(left join)
  4. 數(shù)據(jù)輸出:Ha3(Hdfs/swift)

對數(shù)據(jù)源的處理過程,描述如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 


by 敬明

而對于Bahamut->blink過程可以陳述如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

其中,Bahamut將任務(wù)拆解后扔給JobManager進(jìn)行邏輯節(jié)點到物理節(jié)點的轉(zhuǎn)換,形成若干節(jié)點后再歸并組合成一個完整的SQL語句,例如上圖Kratos_SQL就是一個增量Join的完整SQL,配合資源文件一起通過BayesSDK提交任務(wù)。此外,平臺增加了一個弱個性化配置的功能,可以通過個性化配置來實現(xiàn)控制某個具體任務(wù)的并發(fā)度、節(jié)點內(nèi)存、cpu等等參數(shù)。

2.2 Maat——分布式流程調(diào)度系統(tǒng)

Maat是基于開源項目Airflow再次開發(fā)的分布式流程調(diào)度系統(tǒng),具有可視化編輯及通用的節(jié)點類型,Drogo化部署,分集群管理及完善的監(jiān)控&報警機(jī)制等優(yōu)點。

關(guān)于Airflow及其他工作流系統(tǒng),對比陳列如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

eed引擎為例,maat調(diào)度頁面如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

當(dāng)任務(wù)錯誤時,可以通過該頁面進(jìn)行“將指定步驟置fail”然后重跑全量任務(wù),也可以通過查看某個步驟的log獲悉任務(wù)失敗原因。

2.3 Ha3 doc——數(shù)據(jù)輸出

經(jīng)過上述步驟后,最后將數(shù)據(jù)以xml的形式(isearch format)輸出到HDFS/Pangu路徑(全量)和Swift Topic(增量),引擎全量時通過HDFS路徑獲取全量doc文件進(jìn)行build,增量時直接從swift topic中獲取增量更新消息更新到引擎中。離線平臺通過一個服務(wù)為Tisplus引擎模塊提供表信息的查詢等功能,以下是一個HA3表包含的信息:

{
 "1649992010": [
   {     "data": "hdfs://xxx/search4test_st3_7u/full", // hdfs路徑
     "swift_start_timestamp": "1531271322", //描述了今天增量的時間起點
     "swift_topic": "bahamut_ha3_topic_search4test_st3_7u_1",
     "swift_zk": "zfs://xxx/swift/swift_hippo_et2",
     "table_name": "search4test_st3_7u", // HA3 table name,目前與應(yīng)用名稱一樣
     "version": "20190920090800” // 數(shù)據(jù)產(chǎn)出的時間
   }
 ]
}

三、Suez

經(jīng)過上述步驟后,數(shù)據(jù)以xml(isearchformat)的格式產(chǎn)出到Hdfs和swift,然后通過在suez_ops平臺的離線表中選擇數(shù)據(jù)類型為zk并配置相應(yīng)的zk_server和zk_path即可。

然后由Build service完成全量/增量/實時索引的構(gòu)建,然后分發(fā)到Ha3在線集群提供服務(wù)。

suez的離線表構(gòu)建邏輯如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

suez在線服務(wù)邏輯如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

下面針對離線(buildservice)和在線(ha3)進(jìn)行簡述:

**3.1 Build Service——索引構(gòu)建
**

Build Service(簡稱BS)是一套提供全量、增量、實時索引的構(gòu)建系統(tǒng)
build_service總共有五類角色:

  • admin :負(fù)責(zé)控制整體build流程,切換全量增量狀態(tài),發(fā)起定期任務(wù),響應(yīng)用戶的控制請求;
  • processor :負(fù)責(zé)數(shù)據(jù)處理,將用戶的原始文檔轉(zhuǎn)化為輕量級可build的文檔形態(tài);
  • builder :負(fù)責(zé)構(gòu)建索引;
  • merger :負(fù)責(zé)索引整理;
  • rtBuilder :負(fù)責(zé)在線索引的實時構(gòu)建。

其中admin、processor、builder、merger是以二進(jìn)制程序的方式運行在hippo上,rtBuilder是以lib的形式提供給在線部分使用。

一個完整的全量+增量過程會產(chǎn)生一個generationid,該generation會經(jīng)歷 process full-> builder full -> merger full ->process inc -> builder inc ->merger inc的過程,其中處于inc過程后,builder inc和merger inc會交替出現(xiàn)。1688在ha3升級之前經(jīng)常會出現(xiàn) build tooslow問題就是因為分配到了壞節(jié)點或builderinc/merger inc階段卡住。

3.2 Ha3——在線搜索服務(wù)

Ha3是一套基于suez框架的全文檢索引擎,提供豐富的在線查詢子句,過濾子句,排序子句,聚合子句且支持用戶自定義開發(fā)排序插件。服務(wù)架構(gòu)如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

1688主搜引擎由一組Qrs、searcher和summary組成:

  • Qrs的作用是:對輸入的查詢作解析與校驗,通過后把查詢轉(zhuǎn)發(fā)給相應(yīng)的;searcher,收集合并searcher返回的結(jié)果,最后對結(jié)果做一些加工并返回給用戶。其中也可以通過寫meger插件干預(yù)合并規(guī)則;
  • searcher:可以是文檔的召回服務(wù)(searcher),也可以是文檔的打分與排序服務(wù)(ranker)或者是文檔的摘要服務(wù)(summary);
  • summary:1688主搜將searcher和summary分離,summary集群只提供取商品詳情的服務(wù)。

qrs/searcher/summary等機(jī)器通過掛載到cm2提供服務(wù),比如qrs有對外cm2,可以對SP等調(diào)用方提供服務(wù),searcher和summary有對內(nèi)cm2,可以接收從qrs來的請求并完成召回排序取詳情等服務(wù)。

一次調(diào)用方的query服務(wù),要經(jīng)由qrs->query解析->seek->filter->rank(粗排)->agg(聚合)->rerank(精排)->extraRank(最終排)->merger->summary(取詳情)的過程,具體描述如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

其中,ReRank和ExtraRank由Hobbit插件及基于Hobbit的戰(zhàn)馬插件完成,業(yè)務(wù)方可以根據(jù)自身需求開發(fā)戰(zhàn)馬特征并指定各特征權(quán)重得到商品的最終分。

四、Drogo

drogo是基于二層調(diào)度服務(wù)Carbon的無數(shù)據(jù)服務(wù)的管控平臺,1688的SP服務(wù)及QP代理服務(wù)均部署在該平臺。

1688搜索鏈路主要服務(wù)平臺部署情況簡述如下:

10年+,阿里沉淀出怎樣的搜索引擎?

 

參考文檔:
《搜索中臺開發(fā)運維一體化實踐-Sophon》、《基于DAG的分布式任務(wù)調(diào)度平臺-Maat》、《tisplus用戶操作手冊》、《Build Service用戶手冊》、《Build Service源碼》、《Ha3 用戶手冊》、《Ha3搜索引擎簡介》、《drogo平臺介紹》、《搜索離線平臺系統(tǒng)架構(gòu)及實現(xiàn)介紹》、《基于Blink Batch模式的搜索離線任務(wù)開發(fā)實踐》、《搜索離線平臺計算引擎簡介——基于Blink2.2和Bayes的演進(jìn)之路》、《解密雙11實時計算每秒4.72億背后的核心技術(shù)——Blink》、《SARO用戶手冊》、《工作流引擎比較》、《Airflow簡介》、《Airflow github》

原文發(fā)布時間為:2019-09-24
作者:清剛
本文來自云棲社區(qū)合作伙伴“阿里技術(shù)”,了解相關(guān)信息可以關(guān)注“阿里技術(shù)”。

分享到:
標(biāo)簽:搜索引擎
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定