在eBay上存儲著上億種商品的信息,而且每天有數(shù)百萬種的新商品增加,因此需要用云系統(tǒng)來存儲和處理PB級別的數(shù)據(jù),而Hadoop則是個很好的選擇。
Hadoop是建立在商業(yè)硬件上的容錯、可擴(kuò)展、分布式的云計算框架,eBay利用Hadoop建立了一個大規(guī)模的集群系統(tǒng)—Athena,它被分為五層(如下圖所示),下面從最底層向上開始介紹:
1)Hadoop核心層,包括Hadoop運(yùn)行時環(huán)境、一些通用設(shè)施和HDFS,其中文件系統(tǒng)為讀寫大塊數(shù)據(jù)而做了一些優(yōu)化,如將塊的大小由128MB改為256MB。
2)MapReduce層,為開發(fā)和執(zhí)行任務(wù)提供API和控件。
3)數(shù)據(jù)獲取層,現(xiàn)在數(shù)據(jù)獲取層的主要框架是HBase、Pig和Hive:
·HBase是根據(jù)Google BigTable開發(fā)的按列存儲的多維空間數(shù)據(jù)庫,通過維護(hù)數(shù)據(jù)的劃分和范圍提供有序的數(shù)據(jù),其數(shù)據(jù)儲存在HDFS上。
·Pig(Latin)是提供加載、篩選、轉(zhuǎn)換、提取、聚集、連接、分組等操作的面向過程的語言,開發(fā)者使用Pig建立數(shù)據(jù)管道和數(shù)據(jù)工廠。
·Hive是用于建立數(shù)據(jù)倉庫的使用SQL語法的聲明性語言。對于開發(fā)者、產(chǎn)品經(jīng)理和分析師來說,SQL接口使得Hive成為很好的選擇。
4)工具和加載庫層,UC4是eBay從多個數(shù)據(jù)源自動加載數(shù)據(jù)的企業(yè)級調(diào)度程序。加載庫有:統(tǒng)計庫(R)、機(jī)器學(xué)習(xí)庫(Mahout)、數(shù)學(xué)相關(guān)庫(Hama)和eBay自己開發(fā)的用于解析網(wǎng)絡(luò)日志的庫(Mobius)。
5)監(jiān)視和警告層,Ganglia是分布式集群的監(jiān)視系統(tǒng),Nagios則用來警告一些關(guān)鍵事件如服務(wù)器不可達(dá)、硬盤已滿等。
eBay的企業(yè)服務(wù)器運(yùn)行著64位的RedHat Linux:
·NameNode負(fù)責(zé)管理HDFS的主服務(wù)器;
·JobTracker負(fù)責(zé)任務(wù)的協(xié)調(diào);
·HBaseMaster負(fù)責(zé)存儲HBase存儲的根信息,并且方便與數(shù)據(jù)塊或存取區(qū)域進(jìn)行協(xié)調(diào);
·ZooKeeper是保證HBase一致性的分布式鎖協(xié)調(diào)器。
用于存儲和計算的節(jié)點(diǎn)是1U大小的運(yùn)行Cent OS的機(jī)器,每臺機(jī)器擁有2個四核處理器和2TB大小的存儲空間,每38~42個節(jié)點(diǎn)單元為一個rack,這組建成了高密度網(wǎng)格。有關(guān)網(wǎng)絡(luò)方面,頂層rack交換機(jī)到節(jié)點(diǎn)的帶寬為1Gbps,rack交換機(jī)到核心交換機(jī)的帶寬為40Gpbs。
這個集群是eBay內(nèi)多個團(tuán)隊(duì)共同使用的,包括產(chǎn)品和一次性任務(wù)。這里使用Hadoop公平調(diào)度器(Fair Scheduler)來管理分配、定義團(tuán)隊(duì)的任務(wù)池、分配權(quán)限、限制每個用戶和組的并行任務(wù)、設(shè)置優(yōu)先權(quán)期限和延遲調(diào)度。
▲數(shù)據(jù)流
數(shù)據(jù)流的具體處理過程如上圖所示,系統(tǒng)每天需要處理8TB至10TB的新數(shù)據(jù),而Hadoop主要用于:
·基于機(jī)器學(xué)習(xí)的排序,使用Hadoop計算需要考慮多個因素(如價格、列表格式、賣家記錄、相關(guān)性)的排序函數(shù),并需要添加新因素來驗(yàn)證假設(shè)的擴(kuò)展功能,以增強(qiáng)eBay物品搜索的相關(guān)性。
·對物品描述數(shù)據(jù)的挖掘,在完全無人監(jiān)管的方式下使用數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)技術(shù)將物品描述清單轉(zhuǎn)化為與物品相關(guān)的鍵/值對,以擴(kuò)大分類的覆蓋范圍。
·eBay的研究人員在系統(tǒng)構(gòu)建和使用過程中遇到的挑戰(zhàn)及一些初步計劃有以下幾個方面:
·可擴(kuò)展性,當(dāng)前主系統(tǒng)的NameNode擁有擴(kuò)展的功能,隨著集群的文件系統(tǒng)不斷增長,需要存儲大量的元數(shù)據(jù),所以內(nèi)存占有量也在不斷增長。若是1PB的存儲量則需要將近1GB的內(nèi)存量,可能的解決方案是使用等級結(jié)構(gòu)的命名空間劃分,或者使用HBase和ZooKeeper聯(lián)合對元數(shù)據(jù)進(jìn)行管理。
·有效性,NameNode的有效性對產(chǎn)品的工作負(fù)載很重要,開源社區(qū)提出了一些備用選擇,如使用檢查點(diǎn)和備份節(jié)點(diǎn)、從Secondary NameNode中轉(zhuǎn)移到Avatar節(jié)點(diǎn)、日志元數(shù)據(jù)復(fù)制技術(shù)等。eBay研究人員根據(jù)這些方法建立了自己的產(chǎn)品集群。
·數(shù)據(jù)挖掘,在存儲非結(jié)構(gòu)化數(shù)據(jù)的系統(tǒng)上建立支持?jǐn)?shù)據(jù)管理、數(shù)據(jù)挖掘和模式管理的系統(tǒng)。新的計劃提議將Hive的元數(shù)據(jù)和Owl添加到新系統(tǒng)中,并稱為Howl。eBay研究人員努力將這個系統(tǒng)聯(lián)系到分析平臺上去,這樣用戶可以很容易地在不同的數(shù)據(jù)系統(tǒng)中挖掘數(shù)據(jù)。
·數(shù)據(jù)移動,eBay研究人員考慮發(fā)布數(shù)據(jù)轉(zhuǎn)移工具,這個工具可以支持在不同的子系統(tǒng)如數(shù)據(jù)倉庫和HDFS之間進(jìn)行數(shù)據(jù)的復(fù)制。
·策略,通過配額實(shí)現(xiàn)較好的歸檔、備份等策略(Hadoop現(xiàn)有版本的配額需要改進(jìn))。eBay的研究人員基于工作負(fù)載和集群的特點(diǎn)對不同的集群確定配額。
·標(biāo)準(zhǔn),eBay研究人員開發(fā)健壯的工具來為數(shù)據(jù)來源、消耗情況、預(yù)算情況、使用情況等進(jìn)行度量。
同時eBay正在改變收集、轉(zhuǎn)換、使用數(shù)據(jù)的方式,以提供更好的商業(yè)智能服務(wù)。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
6811瀏覽量
88743 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8350瀏覽量
132315 -
Hadoop
+關(guān)注
關(guān)注
1文章
90瀏覽量
15944
發(fā)布評論請先 登錄
相關(guān)推薦
評論