欧美日韩日日夜夜,成人做爰视频www网站小优视频,精品成人自拍视频,国产成人aaaa

推廣 熱搜: 集成  系統(tǒng)集成  弱電  軟件  kvm  思科  服務(wù)器  視頻會(huì)議  拼接  SFP 

高負(fù)載低延遲:我們用的是Hadoop+AWS+NoSQL

   日期:2013-01-19     瀏覽:506    評(píng)論:0    
核心提示:這篇文章由Datasalt的創(chuàng)始人Ivan de Prado和Pere Ferrera提供,Datasalt是一家專注于大數(shù)據(jù)的公司,推出了Pangool和Spoilt SQL Big Data等開源項(xiàng)目。在這篇文章中,通過BBVA信用卡支付的例子詳解了云計(jì)算中的低延時(shí)方案。

這篇文章由Datasalt的創(chuàng)始人Ivan de Prado和Pere Ferrera提供,Datasalt是一家專注于大數(shù)據(jù)的公司,推出了Pangool和Spoilt SQL Big Data等開源項(xiàng)目。在這篇文章中,通過BBVA信用卡支付的例子詳解了云計(jì)算中的低延時(shí)方案。

以下為文章全文:

使用信用卡進(jìn)行支付的款項(xiàng)是巨大的,但是很明顯,通過分析所有的交易,我們也可以從數(shù)據(jù)中得到內(nèi)在的價(jià)值。比如客戶忠誠(chéng)度、人口統(tǒng)計(jì)數(shù)據(jù)、活動(dòng)的受歡迎程度、商店的建議和許多其他的統(tǒng)計(jì)數(shù)據(jù),這對(duì)商家和銀行來說都是非常有用的,可以改進(jìn)他們與市場(chǎng)的聯(lián)系。在Datasalt,我們已經(jīng)與BBVA銀行合作開發(fā)了一個(gè)系統(tǒng),該系統(tǒng)能夠?qū)Χ嗄甑臄?shù)據(jù)進(jìn)行分析,并為網(wǎng)絡(luò)應(yīng)用程序和移動(dòng)應(yīng)用程序提供不同的方案和統(tǒng)計(jì)資料。

我們除了需要對(duì)面處理大數(shù)據(jù)輸入這個(gè)主要挑戰(zhàn)外,還要面對(duì)大數(shù)據(jù)的輸出,甚至輸出量比輸入量還要大。并且需要在高負(fù)載下提供更快捷的輸出服務(wù)。

我們開發(fā)的解決方案中有一個(gè)每月只需幾千美元的基礎(chǔ)設(shè)施成本,這要感謝使用的云(AWS)、Hadoop和Voldemort。在下面的內(nèi)容中,我們將解釋所提出的架構(gòu)的主要特點(diǎn)。

數(shù)據(jù)、目標(biāo)和首要決定

該系統(tǒng)利用BBVA的信用卡在世界各地的商店交易信息作為輸入源的分析。很明顯,為了防止隱私問題,數(shù)據(jù)是匿名的、客觀的和分離的,信用卡號(hào)碼被切割。任何因此而產(chǎn)生的見解總是聚集,所以從中得不出任何個(gè)人信息。

我們計(jì)算每個(gè)店和每個(gè)不同的時(shí)間段的許多統(tǒng)計(jì)資料和數(shù)據(jù)。以下是其中的一些:

·每家店鋪的付款金額的直方圖

·客戶端的保真度

·客戶端人口統(tǒng)計(jì)

·商店的建議(在這購(gòu)買的客戶還購(gòu)買了……)、過濾的位置和商店類別等

該項(xiàng)目的主要目標(biāo)是通過低延遲的網(wǎng)絡(luò)和移動(dòng)應(yīng)用提供所有這些信息到不同的代理(商店、客戶)。因此,一個(gè)苛刻的要求是要能夠在高負(fù)載下能夠提供亞秒級(jí)延遲的服務(wù)。因?yàn)檫@是一個(gè)研究項(xiàng)目,還需要在代碼和要求需要處理方面有一個(gè)高度的靈活性。

由于更新的數(shù)據(jù)只能每一次并不是一個(gè)問題,我們選擇了一個(gè)面向批處理的架構(gòu)(Hadoop)。并且我們使用Voldemort作為只讀存儲(chǔ)服務(wù)于Hadoop產(chǎn)生的見解,這是一個(gè)既簡(jiǎn)單又超快的鍵/值存儲(chǔ)。

平臺(tái)

該系統(tǒng)以Amazon Web Services為基礎(chǔ)建立。具體地說,我們用S3來存儲(chǔ)原始輸入數(shù)據(jù),用Elastic MapReduce(亞馬遜提供的Hadoop)分析,并用EC2服務(wù)于結(jié)果。使用云技術(shù)使我們能夠快速迭代和快速交付功能原型,而這正是我們需要那種項(xiàng)目。

體系架構(gòu)

Hadoop+AWS+NoSQL

該架構(gòu)具有三個(gè)主要部分:

·數(shù)據(jù)存儲(chǔ):用戶保持原始數(shù)據(jù)(信用卡交易)和得到的Voldemort商店。

·數(shù)據(jù)處理:Hadoop的工作流程在EMR上運(yùn)行,執(zhí)行所有計(jì)算并通過Voldemort創(chuàng)建所需要的數(shù)據(jù)存儲(chǔ)。

·數(shù)據(jù)服務(wù):一個(gè)Voldemort集群從數(shù)據(jù)處理層提供預(yù)先計(jì)算好的數(shù)據(jù)。

每一天,銀行上傳在那一天發(fā)生的所有交易到S3上的一個(gè)文件夾中。這可以讓我們保留所有的歷史數(shù)據(jù)——每天所有的信用卡執(zhí)行的交易。所有的這些數(shù)據(jù)都被輸入處理層,所以我們每天都會(huì)重新計(jì)算一切,之后再處理這些數(shù)據(jù),我們就能夠非常靈活。如果需求變更或如果我們找到一個(gè)愚蠢的錯(cuò)誤,我們只需要在下一批中更新項(xiàng)目代碼和所有的固定數(shù)據(jù)就可以了。這讓我們作出了一個(gè)開發(fā)的決定:

·一個(gè)簡(jiǎn)化代碼的基礎(chǔ)架構(gòu)

·靈活性和適應(yīng)性的變化

·易于操作的人為錯(cuò)誤(剛剛修復(fù)的錯(cuò)誤,并重新啟動(dòng)的過程)

每天,控制器都會(huì)在EMR上啟動(dòng)一個(gè)新的Hadoop集群以及啟動(dòng)處理流程。這個(gè)流程由約16組MapReduce工作組成,計(jì)算各種方案。最后的一部分流程(Voldemort索引)負(fù)責(zé)構(gòu)建稍后會(huì)部署到Voldemort的數(shù)據(jù)存儲(chǔ)文件。一旦流程結(jié)束,得出的數(shù)據(jù)存儲(chǔ)文件就會(huì)上傳到S3上。控制器關(guān)閉Hadoop集群,并發(fā)送一個(gè)部署請(qǐng)求給Voldemort。然后,Voldemort會(huì)從S3上下載新的數(shù)據(jù)存儲(chǔ),并執(zhí)行一個(gè)熱交換,完全取代舊的數(shù)據(jù)。

技術(shù)

Hadoop和Pangool

整個(gè)分析和處理流程使用Pangool Jobs在Hadoop基礎(chǔ)上。這給我們帶來了良好的平衡性、靈活性和敏捷性。元組的使用使我們?cè)诹鞒讨g使用簡(jiǎn)單的數(shù)據(jù)類型(int、string)傳送信息,我們可以把其他復(fù)雜對(duì)象(如柱狀圖)與他們自己的自定義進(jìn)行序列化。

而且,因?yàn)镻angool仍然是一個(gè)低級(jí)別API,我們可以在需要時(shí)細(xì)調(diào)大量單個(gè)作業(yè)。

Voldemort

Hadoop+AWS+NoSQL

Voldemort是一個(gè)分布式鍵-值(Key-value)存儲(chǔ)系統(tǒng),是亞馬遜Dynamo的一個(gè)開源克隆。

Voldemort背后的主要想法是在組塊中分隔數(shù)據(jù)。每個(gè)組塊都被復(fù)制,并擔(dān)任Voldemort集群的節(jié)點(diǎn)。每個(gè)Voldemort守護(hù)進(jìn)程都能夠路由查詢節(jié)點(diǎn),以保持一個(gè)特定的鍵值。Voldemort支持快速讀取和隨機(jī)寫入,但在這個(gè)項(xiàng)目中,我們使用Voldemort作為只讀數(shù)據(jù)存儲(chǔ),在每個(gè)批處理過程取代所有數(shù)據(jù)組塊。因?yàn)閿?shù)據(jù)存儲(chǔ)預(yù)先由Hadoop生成、查詢服務(wù)不受部署過程影響。這是使用這種只讀、批處理方法的優(yōu)點(diǎn)之一。我們也改變集群拓?fù)浣Y(jié)構(gòu)的相當(dāng)簡(jiǎn)易的方法,并可在需要的時(shí)候重新平衡數(shù)據(jù)。

Voldemort提供了一個(gè)Hadoop的MapReduce作業(yè),創(chuàng)建數(shù)據(jù)存儲(chǔ)在一個(gè)分布式集群。每數(shù)據(jù)塊僅僅是是一個(gè)Berkeley DB的B樹。

Voldemort的接口是TCP,但我們想使用HTTP服務(wù)數(shù)據(jù)。VServ是一個(gè)簡(jiǎn)單的HTTP服務(wù)器,它將傳入的HTTP請(qǐng)求轉(zhuǎn)換為Voldemort TCP請(qǐng)求。負(fù)載均衡器負(fù)責(zé)所有VServs之間的共享查詢。

計(jì)算的數(shù)據(jù)

統(tǒng)計(jì)

部分分析包含計(jì)算簡(jiǎn)單的統(tǒng)計(jì)數(shù)據(jù):最大值、最小值、平均值、標(biāo)準(zhǔn)偏差、獨(dú)特的技術(shù)等。他們都使用眾所周知的MapReduce方法來實(shí)現(xiàn),但我們也計(jì)算一些柱狀圖。為了有效地在Hadoop實(shí)現(xiàn)它們,我們創(chuàng)建了一個(gè)自定義的柱狀圖,可以在一次遍歷中計(jì)算。此外通過各個(gè)業(yè)務(wù)相應(yīng)的柱狀圖,我們只需要一步MapReduce,就可以為所有的業(yè)務(wù)做任何周期的簡(jiǎn)單統(tǒng)計(jì)。

為了減少柱狀圖所使用的存儲(chǔ)量,并改善其可視化,原來的計(jì)算柱狀圖中許多小的項(xiàng)目被轉(zhuǎn)化成幾個(gè)大的不同寬度的項(xiàng)目。下圖顯示了一個(gè)特定的柱狀圖轉(zhuǎn)化的最佳方案:

使用隨機(jī)重啟爬山近似算法對(duì)最佳柱狀圖進(jìn)行計(jì)算。下面的圖顯示了每個(gè)爬山迭代上可能的變動(dòng):

該算法已被證明是非常快速、準(zhǔn)確的:相比一個(gè)精確的動(dòng)態(tài)算法,我們已經(jīng)實(shí)現(xiàn)了99%的準(zhǔn)確率,這是高速增長(zhǎng)的因素之一。

商務(wù)建議

建議使用同現(xiàn)(co-ocurrences)計(jì)算。也就是說,如果有人A和B這兩個(gè)商店都買了東西,那么A和B之間存在一個(gè)同現(xiàn)。只有一個(gè)同現(xiàn)考慮,即使客戶在A和B購(gòu)買了好幾次。

但同現(xiàn)這一簡(jiǎn)單想法被使用還需要一些改進(jìn)。首先,最受歡迎的商店都使用一個(gè)簡(jiǎn)單的頻率刪減過濾掉,因?yàn)閹缀趺總€(gè)人都會(huì)在他們那購(gòu)買,所以沒有價(jià)值再推薦它們。按位置、按商店類別或同時(shí)進(jìn)行過濾推薦,也改善了建議。基于時(shí)間的同現(xiàn)會(huì)產(chǎn)生較熱建議與“總是正確”的建議之間的較量。在可能出現(xiàn)并發(fā)行為的地方(用戶在購(gòu)買后看見推薦商品又買了第二件)限制時(shí)間。

盡管一些挑戰(zhàn)不容易克服,但Hadoop和Pangool仍然是計(jì)算同現(xiàn)和生成建議的完美工具。特別是如果一個(gè)買家在許多商店進(jìn)行支付行為,這個(gè)信貸調(diào)用將顯示同現(xiàn)的數(shù)量二次增長(zhǎng),使分析不是成線性比例。因?yàn)檫@種情況極少出現(xiàn),所以我們只限制每張卡的同現(xiàn)的數(shù)量,只考慮那些買家在哪買的最多。

成本和一些數(shù)字

在Voldemort統(tǒng)計(jì)的,在西班牙使用的BBVA信用卡一年的交易信息量270GB。整個(gè)處理流程將在一個(gè)24“m1.large”集群上運(yùn)行11個(gè)小時(shí)。整個(gè)基礎(chǔ)設(shè)施,包括EC2實(shí)例所需要的服務(wù)所產(chǎn)生的數(shù)據(jù)將每月花費(fèi)3500美元。

雖然仍有優(yōu)化的空間,但考慮到解決方案是敏捷的、靈活的并且在云中,這個(gè)價(jià)格還是相當(dāng)合理的。系統(tǒng)運(yùn)行在一個(gè)內(nèi)部基礎(chǔ)設(shè)施的成本會(huì)便宜很多。

結(jié)論與未來

幸好有了像Hadoop、Amazon Web Services和NoSQL數(shù)據(jù)庫(kù)這樣的技術(shù),才可以以合理的成本,迅速發(fā)展可擴(kuò)展的、靈活的解決方案。

未來的工作將涉及通過Splout SQL替代Voldemort,將允許部署hadoop生成的數(shù)據(jù)集,擴(kuò)展了低延遲的鍵/值到低延遲的SQL。這將減少分析時(shí)間并“實(shí)時(shí)”執(zhí)行許多聚合的數(shù)據(jù)量。

 
標(biāo)簽: 大數(shù)據(jù) Hadoop NoSQL
打賞
 
更多>同類資訊
0相關(guān)評(píng)論

 
推薦資訊
點(diǎn)擊排行
?
網(wǎng)站首頁(yè)  |  付款方式  |  版權(quán)隱私  |  使用協(xié)議  |  聯(lián)系方式  |  關(guān)于我們  |  網(wǎng)站地圖  |  排名推廣  |  廣告服務(wù)  |  RSS訂閱  |  違規(guī)舉報(bào)  |  京ICP備11008917號(hào)-2  | 
 
主站蜘蛛池模板: 宁德市| 阜康市| 凤凰县| 普兰店市| 中宁县| 阿鲁科尔沁旗| 原阳县| 会东县| 文登市| 涪陵区| 庆元县| 哈巴河县| 韩城市| 扎兰屯市| 平度市| 玛纳斯县| 霍林郭勒市| 灵武市| 温州市| 全椒县| 公主岭市| 比如县| 鹤庆县| 渭南市| 蛟河市| 福州市| 吉隆县| 六枝特区| 乐安县| 永康市| 新竹县| 大姚县| 缙云县| 无棣县| 墨脱县| 苏尼特左旗| 许昌市| 申扎县| 铅山县| 湘潭县| 绍兴市|