Evernote每天使用JasperReports服務(wù)器生成10多份圖表與報(bào)告
出于安全原因,這一分析環(huán)境被放在了一個獨(dú)立的網(wǎng)絡(luò)上,并不與生產(chǎn)應(yīng)用服務(wù)器相連。日常在線數(shù)據(jù)通過一個單向的網(wǎng)絡(luò)連接被安全地推送到報(bào)告環(huán)境中。
部署Hadoop并協(xié)同工作
全部的原始數(shù)據(jù)首先將發(fā)送至Hadoop。在這里,數(shù)據(jù)將被歸檔并為輸入至ParAccel進(jìn)行日報(bào)和分析做好準(zhǔn)備。隨后,Evernote將使用Cloudera Hadoop進(jìn)行分發(fā),并使用Puppet進(jìn)行配置管理。 Hadoop集群包括有6個配置了8個500GB硬盤的數(shù)據(jù)節(jié)點(diǎn),總計(jì)可以存儲24TB的原始數(shù)據(jù)。2個8核處理器和64GB內(nèi)存在跨集群中運(yùn)行132個 MapReduce任務(wù),每個任務(wù)可擁有超過2GB的內(nèi)存。
此外,作為冗余,Evernote還在兩個服務(wù)器上運(yùn)行了一個單獨(dú)的Hadoop Job Tracker,在一個客戶端節(jié)點(diǎn)運(yùn)行Hive與Hue,這是兩個針對Hadoop的關(guān)鍵開源工具。Hadoop集群可通過Hive抽象層被訪問,后者提供了一個用于查詢的類SQL接口。Hue是一個針對Hadoop的基于Web接口,其中包含了大量的實(shí)用應(yīng)用,例如文件瀏覽器、工作追蹤接口、集群健康監(jiān)視器,以及一個創(chuàng)建個性化Hadoop應(yīng)用的環(huán)境。
由Hive采集的用戶活動數(shù)據(jù)與來自在線生產(chǎn)數(shù)據(jù)庫的參照表每晚會被加載在ParAccel上。通過Hive所創(chuàng)建的派生表包含有針對常見報(bào)告中最佳表述的預(yù)切片信息。例如,除了某一時期以來每天、每周和每月的活動用戶數(shù)量外,國家一覽表每天每個國家只有一行。
由于ParAccel數(shù)據(jù)庫和表單會針對快速數(shù)據(jù)聚合進(jìn)行調(diào)整,因此與單獨(dú)使用Hive相比,Evernote能夠進(jìn)行多類問題的查詢。例如,查看某周內(nèi)在德國哪個Windows版本的Evernote軟件使用最為頻繁,只需要3秒鐘的時間。
Evernote如今擁有了一個現(xiàn)代化的分析環(huán)境,并且這個環(huán)境擁有足夠的增長空間。由于有了 Hadoop,Evernote的團(tuán)隊(duì)擁有了將海量數(shù)據(jù)運(yùn)營與日志數(shù)據(jù)歸檔的能力。更重要的是,它們可以在兩個小時內(nèi)加載和轉(zhuǎn)換數(shù)百萬條記錄,而以往做這些工作需要花費(fèi)10個小時或是更長的時間。同時得益于ParAccel,Evernote的團(tuán)隊(duì)能夠執(zhí)行更為復(fù)雜的用戶趨勢分析操作,并通過 JasperReports服務(wù)器提供最終結(jié)果。
由于能夠存儲所有的歷史數(shù)據(jù)、進(jìn)行更快速的查詢,以及每日自動生成質(zhì)量報(bào)告,Evernote能夠從更深的層次觀察客戶使用其產(chǎn)品的方式,持續(xù)提升和優(yōu)化自己的產(chǎn)品。