Airbnb如何打造大數(shù)據(jù)引擎
與大多數(shù)互聯(lián)網(wǎng)公司一樣,旅行房屋短期租賃網(wǎng)站Airbnb也希望通過分析海量數(shù)據(jù)提升用戶體驗和業(yè)務(wù)營收。Gigaom最近撰文介紹了Airbnb如何在亞馬遜云的基礎(chǔ)上打造大數(shù)據(jù)基礎(chǔ)架構(gòu),并將數(shù)據(jù)分析作為產(chǎn)品和業(yè)務(wù)決策的基礎(chǔ),編譯整理如下:
“我們希望所有的決策都基于數(shù)據(jù),我們希望成為數(shù)據(jù)驅(qū)動的公司”。這是今天硅谷企業(yè)家的夢想,Airbnb副總裁Mike Curtis也不例外。Curtis加盟Airbnb不到半年,此前兩年他的履歷是Facebook的工程總監(jiān)。
“在推動數(shù)據(jù)科學(xué)在旅游業(yè)的應(yīng)用方面,沒有人比我們做得更多。長期看,這需要很多金剛鉆。”Curtis說道。
個性化搜索的挑戰(zhàn)
Airbnb的一大數(shù)據(jù)難題是找到即將推出的個性化搜索的最佳方式,我們希望客戶能找到符合他們個性化要求的最佳選擇。
但是為不同的用戶個體提供個性化的搜索排名會帶來非常棘手的算法難題。搜索結(jié)果依據(jù)社區(qū)或地理位置排名還相對簡單,但是要加入用戶決策的其他因素,例如社會關(guān)系、租賃歷史、評價等數(shù)據(jù)點后,整個事情就變得復(fù)雜起來。(如果加入Airbnb的城市、客戶和租戶的人口統(tǒng)計以及其他租賃元數(shù)據(jù)的話,問題就更加復(fù)雜)
Twitter的個性化搜索引擎就整合了大量判斷相關(guān)度的因素,其背后涉及的數(shù)據(jù)科學(xué)問題就非常復(fù)雜。
此外,Airbnb還需要通過數(shù)據(jù)分析幫助房主制訂最佳的房屋租賃價格。
Airbnb也希望能夠走Facebook的路子,讓Hadoop成為所有公司員工都能輕松使用的強大工具。
Mesos是關(guān)鍵

Mesos的架構(gòu)圖
Airbnb實現(xiàn)大數(shù)據(jù)夢想的戰(zhàn)略性工具是一個名為Mesos的開源集群管理項目。該技術(shù)來自加州伯克利的AMPLab實驗室(該實驗室開發(fā)的技術(shù)例如Spark內(nèi)存并行處理框架可以讓Hadoop運行得更快,比MapReduce快100倍)。可以讓用戶在單一資源上運行多種計算框架,當(dāng)然,也可以是多個獨立的Hadoop集群。Twitter的使用讓Mesos在互聯(lián)網(wǎng)圈聲名鵲起,上周Mesos已經(jīng)成為Apache的頂級項目。
對于Airbnb來說,Hadoop之外,Mesos也是Airbnb工程師們最大化利用亞馬遜AWS云資源的的關(guān)鍵工具。Airbnb是Hadoop的重度用戶,但Curtis希望能測試流處理的Storm,還希望能用Spark加速Hive查詢。
事實上,Spark對搜索排名、定價、錯誤排查等算法模型來說特別有用,這些模型大多涉及機器學(xué)習(xí),而Spark能大大提升Hadoop的性能,能更快更多地運行這些模型。
Airbnb開發(fā)的一個分布式任務(wù)計劃器——Chronos,也運行在Mesos上。
除了資源管理和效率提升外,Curtis表示Mesos還能有助于推動Airbnb搭建高機動性小團隊的工程戰(zhàn)略。Airbnb資源分配的自動化水平越高,工程師們就能騰出更多時間做其他事情。
云計算的可以,MapReduce的不要

雖然Airbnb運行在AWS云上,但通過Mesos,Airbnb可以不使用亞馬遜的Elastic MapReduce Hadoop服務(wù)。據(jù)Curtis透露,Airbnb這么做的原因有很多,其中最重要的一點是可以通過Mesos統(tǒng)一管理所有其他Airbnb需要運行的框架,而且能對Hadoop環(huán)境控制的粒度更好。Elastic MapReduce也可以看作是亞馬遜自己的Hadoop發(fā)行版本,這意味著用戶需要依賴AWS提供補丁升級,而且僅僅是為了Hadoop任務(wù)而準(zhǔn)備的。
Airbnb的另外一位工程師Brenden Matthews上周在Twitter總部的一次演講(演示文稿)介紹了Airbnb如何從Elastic MapReduce遷移到Mesos上,以及在云端運行Hadoop經(jīng)常會遇到的一些技術(shù)難題。
Curtis認(rèn)為,AWS總體來說還是穩(wěn)定的,搭配Mesos使用后,Airbnb可以隨時做需要做的任何事情。Airbnb的ad hoc分析查詢也不會與長時間運行的批量工作流沖突。
“在集群上跑任務(wù)的速度實際上是一個資源分配問題,取決于你需要投入的資源”Curtis說道。
總之,云計算讓Airbnb這樣的創(chuàng)業(yè)公司在前期只有少量投入的情況下就能購買和管理服務(wù)器,“想想如今大部分服務(wù)器都被抽象化了,這確實是一件美妙而驚人的事情。”Curtis感嘆道。
原文鏈接:http://www.ctocio.com/ccnews/13073.html
























