Yahoo開(kāi)源實(shí)時(shí)大數(shù)據(jù)處理服務(wù)系統(tǒng)Vespa

責(zé)任編輯:editor005

作者:薛命燈

2017-09-29 10:44:12

摘自:InfoQ

有了 Vespa,開(kāi)發(fā)者可以輕松地構(gòu)建基于大數(shù)據(jù)集實(shí)時(shí)計(jì)算結(jié)果的應(yīng)用,而到目前為止,只有少數(shù)幾個(gè)大公司具備這樣的能力。

編譯|薛命燈

編輯|Natalie

從 2006 年開(kāi)源 Hadoop 開(kāi)始,Yahoo(也就是現(xiàn)在的 Oath)為廣大開(kāi)發(fā)者社區(qū)的大數(shù)據(jù)基礎(chǔ)設(shè)施做出了不可磨滅的貢獻(xiàn)?,F(xiàn)在,我們又邁出了堅(jiān)實(shí)的一步,Yahoo 的大數(shù)據(jù)處理和服務(wù)引擎 Vespa 正式在 GitHub 上開(kāi)源了( https://github.com/vespa-engine)。

越來(lái)越多的應(yīng)用程序需要處理大量的數(shù)據(jù),盡管開(kāi)發(fā)者可以使用 Hadoop 來(lái)存儲(chǔ)和批處理數(shù)據(jù),也可以使用 Storm 來(lái)處理流式數(shù)據(jù),但這些技術(shù)無(wú)法直接服務(wù)于最終用戶。提供大規(guī)模服務(wù)是一項(xiàng)巨大的挑戰(zhàn),當(dāng)用戶需要等待基于大量數(shù)據(jù)集的計(jì)算結(jié)果時(shí),比如特征搜索、推薦系統(tǒng)、定制化,這種挑戰(zhàn)就會(huì)變得尤為明顯。

有了 Vespa,開(kāi)發(fā)者可以輕松地構(gòu)建基于大數(shù)據(jù)集實(shí)時(shí)計(jì)算結(jié)果的應(yīng)用,而到目前為止,只有少數(shù)幾個(gè)大公司具備這樣的能力。

提供服務(wù)不是簡(jiǎn)單地根據(jù) ID 查詢項(xiàng)目或應(yīng)用模型計(jì)算出幾個(gè)數(shù)字,很多提供服務(wù)的應(yīng)用需要基于大數(shù)據(jù)集運(yùn)行計(jì)算,比如搜索和推薦。為了給用戶返回精確的搜索結(jié)果或推薦清單,應(yīng)用程序需要找出所有符合查詢條件的項(xiàng)目,根據(jù)相關(guān)度或推薦模型決定每一個(gè)項(xiàng)目的匹配程度,移除重復(fù)項(xiàng)目,增加瀏覽輔助項(xiàng),最后把結(jié)果返回給用戶。因?yàn)檫@些計(jì)算依賴用戶的具體請(qǐng)求,所以無(wú)法預(yù)先計(jì)算。應(yīng)用程序必須實(shí)時(shí)地處理用戶請(qǐng)求,而且要快,因?yàn)橛脩粼诘却Y(jié)果。在大數(shù)據(jù)集上快速執(zhí)行上述操作需要很多基礎(chǔ)設(shè)施的支持——分布式算法、數(shù)據(jù)分布和管理、高效的數(shù)據(jù)結(jié)構(gòu)和內(nèi)存管理等等。而這些正是 Vespa 要為開(kāi)發(fā)者提供的——一個(gè)一站式的引擎,簡(jiǎn)潔易用。

我們已經(jīng)在 Oath 的多個(gè)產(chǎn)品上使用了 Vespa,包括 Yahoo.com、Yahoo News、Yahoo Sports、Yahoo Finance、Yahoo Gemini、Flickr 等。我們使用 Vespa 來(lái)處理每日數(shù)十億個(gè)用戶請(qǐng)求,為用戶返回基于數(shù)十億文檔得出的搜索結(jié)果和推薦內(nèi)容,并提供定制化內(nèi)容和廣告。事實(shí)上,Vespa 每秒可以處理 90,000 次內(nèi)容和廣告請(qǐng)求,延遲通常只有幾十毫秒。在 Flickr 上,Vespa 每秒可以處理數(shù)百個(gè)基于數(shù)百億張圖片的關(guān)鍵字和圖像搜索。另外,Vespa 在 Yahoo Gemini 上每天處理 30 億個(gè)請(qǐng)求,高峰時(shí)段每秒鐘 140,000 個(gè)請(qǐng)求,直接給公司帶來(lái)可觀的收益。

我們基于 Vespa 構(gòu)建的應(yīng)用具備如下特性:

使用 SQL 風(fēng)格的查詢和文本搜索來(lái)過(guò)濾內(nèi)容

基于匹配項(xiàng)生成數(shù)據(jù)驅(qū)動(dòng)的頁(yè)面

根據(jù)人工或機(jī)器學(xué)習(xí)相關(guān)度模型對(duì)匹配進(jìn)行排名

毫秒級(jí)的處理響應(yīng)時(shí)間

實(shí)時(shí)寫(xiě)入數(shù)據(jù),每個(gè)節(jié)點(diǎn)每秒鐘寫(xiě)入數(shù)千次

在運(yùn)行服務(wù)的同時(shí)進(jìn)行伸縮和重配置

為了保證速度和伸縮性,Vespa 在多臺(tái)機(jī)器上分布數(shù)據(jù)和計(jì)算任務(wù),避免了單點(diǎn) master 的瓶頸。傳統(tǒng)的應(yīng)用將數(shù)據(jù)拉取到一個(gè)無(wú)狀態(tài)的層上進(jìn)行處理,而 Vespa 是將計(jì)算任務(wù)推送給數(shù)據(jù)集。為此,Vespa 需要做很多非常棘手的工作,比如當(dāng)機(jī)器發(fā)生故障或增加新機(jī)器時(shí)在后臺(tái)重新分布數(shù)據(jù)、實(shí)現(xiàn)分布式的低延遲和處理算法、處理分布式數(shù)據(jù)一致性等。

我們?cè)跇?gòu)建 alltheweb.com(后被 Yahoo 收購(gòu))時(shí)就開(kāi)始開(kāi)發(fā)我們的搜索和服務(wù)。在過(guò)去幾年中,我們不斷使用新技術(shù)重寫(xiě)我們的引擎。Vespa 是我們發(fā)布過(guò)的項(xiàng)目當(dāng)中涉及范圍最廣、代碼量最大的一個(gè)項(xiàng)目。Vespa 已經(jīng)在 Yahoo 的大部分關(guān)鍵系統(tǒng)上得到了實(shí)地驗(yàn)證,所以我們很高興能夠把 Vespa 推向世界。

Vespa 賦予了開(kāi)發(fā)者將任意大小數(shù)據(jù)集和模型填充進(jìn)服務(wù)系統(tǒng)的能力,而且可以實(shí)時(shí)地得到計(jì)算結(jié)果,帶來(lái)更好的用戶體驗(yàn),而且成本更低,比預(yù)計(jì)算方式具有更低的復(fù)雜度。而且,開(kāi)發(fā)者可以與復(fù)雜的計(jì)算展開(kāi)實(shí)時(shí)的交互,不需要啟動(dòng)離線作業(yè)或反復(fù)回過(guò)頭來(lái)檢查結(jié)果。

Vespa 可以運(yùn)行在自有數(shù)據(jù)中心或云端。我們提供了 Vespa 的 Docker 鏡像和 rpm 安裝包,也提供了運(yùn)行指南,可以讓 Vespa 運(yùn)行在本地機(jī)器或 AWS 集群上。

這個(gè)(http://docs.vespa.ai/ )是我們的文檔,里面包含了一個(gè)入門(mén)指南。

管理分布式系統(tǒng)不是件簡(jiǎn)單的事情。我們投入了大量精力開(kāi)發(fā) Vespa,其他開(kāi)發(fā)者就可以專(zhuān)注在創(chuàng)建功能上,他們可以實(shí)現(xiàn)基于大數(shù)據(jù)集的實(shí)時(shí)計(jì)算,而不是把時(shí)間花在集群和數(shù)據(jù)的管理上。根據(jù)我們的文檔所給出的指南,你可以在不到十分鐘的時(shí)間內(nèi)讓一個(gè)應(yīng)用跑起來(lái)。

本文翻譯已獲授權(quán),原文地址:

http://blog.vespa.ai/post/165763618906/open-sourcing-vespa-yahoos-big-data-processing

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)