全面剖析eBay的Hadoop集群應用及大數據管理

 更新時間:2015-12-24 13:46:08   作者:佚名   我要評論(0)

eBay, 全球最大的在線交易平臺,由程序員Pierre Omidyar于1995年勞動節周末在美國創立,起初叫AuctionWeb,于1997年7月正式改名為eBay,今年九月將迎來其20周年紀念。eBay第

eBay, 全球最大的在線交易平臺,由程序員Pierre Omidyar于1995年勞動節周末在美國創立,起初叫AuctionWeb,于1997年7月正式改名為eBay,今年九月將迎來其20周年紀念。

eBay第一筆交易是一只破損的激光筆,成交價14.83美元,Pierre主動聯系買家以確信其知道這是一只破損的激光筆,而買家則回復“我是一個破損激光筆收藏家”。從此,eBay 20年的發展正式開始了,帶領了電子商務產業的極速成長,如今,eBay已經成為全球最大的在線交易網站,買家分布于全球190多個國家,超過2500萬活躍賣家,1.57億活躍買家,8億活躍商品,通過Connected Commerce連接著全球各地的買家和買家,2014年產生超過2550億美元的GMV,其中來自移動端的GMV超過280億美元。據統計,在美國每五秒售出一個手袋,在澳大利亞每分鐘通過移動端售出一雙鞋,在德國每10分鐘通過移動端售出一輛汽車或卡車。

如此大量的用戶及交易下,數據成為eBay的重中之中,從點擊流到搜索,商品查看,交易以及愿望清單等不斷進行收集。在eBay數據平臺中存儲著超過100PB的數據,其關鍵是如何獲取、存儲、加工和分析數據,并釋放數據的價值使之成為行動指南,而各個大數據平臺,則在各個方面為上萬名分析師及業務用戶提供了堅實的保障和基礎,并不斷創新以滿足日新月異的變革和需求。

eBay目前的大數據平臺分為三層,數據整合層:負責數據獲取,處理及清洗等ETL工作,包括批處理及實時處理能力,包括相關的商業產品和開源產品;數據平臺層:主要由傳統數據倉庫(EDW),基于Teradata集群,總容量超過10PB;奇點(Singularity),存放半結構化及深層次結構化數據存儲,總容量超過36PB;以及Hadoop集群,總容量超過100PB;數據訪問層:通過各種工具,平臺為業務用戶和分析師提供訪問和分析相關數據的能力,包括各種商業工具,開源產品及自研的各種平臺等。本文將著重介紹eBay在相關領域的發展,平臺及未來發展趨勢。

Connect with Hadoop

1. Hadoop在eBay的發展歷史
20151222104955960.jpg (600×338)


eBay最早的Hadoop應用是在eBay研究實驗室(eBay Research Lab, eRL)構建,主要用作日志分析,以期提高每天的日志處理速度。最初的版本是0.18.2,4個節點,存儲并處理約幾百GB的日志,最大的處理能力為44個Map。

隨后,eBay搜索團隊構建了10個節點的集群開始了Hadoop在eBay搜索領域的發展,并在2012年上線了基于HBase的搜索平臺:Cassini。

2010年,eBay 上線了基于CDH2的集群,擁有532個節點,超過5PB的存儲容量,并于2012年上線了基于HDP的集群,超過3000個節點,容量超過50PB。2014年,總節點數據超過10000多個,存儲容量超過170PB,活躍用戶超過2000多,現在,相關規模還在不斷增長中。隨之帶來的管理、監控、分析和存儲的挑戰越來越嚴峻。
20151222105043591.jpg (600×338)



基礎架構的創新主導了Hadoop 的進化,從最初的基于HDFS和MapReduce的批處理應用不斷演變,第一代的Hadoop提供了靈活和可擴展的數據結構和處理能力,并在大數據興起之時滿足了公司各種大小數據處理需求提供了民主化需求。然而畢竟其只是第一步,有著各種限制,如果將其對比于操作系統的話, 第一代Hadoop就如操作系統和應用,例如記事本捆綁在一起,且僅有一個應用,即MapReduce。然而隨之而來的大量任務導致了調度瓶頸,從而促成了YARN(Yet Another Resource Negotiator)項目的成立和發展,其解決了JobTracker在超大規模集中成為瓶頸等問題,并支持各種應用通過YARN來進行資源調度和管理從而將Hadoop帶入了下一個時代,

下一代的Hadoop取得了巨大的躍進,從面向批處理到提供交互式的處理能力。并提供了戰略性的決定以支持獨立的執行模式,例如MapReduce可以作為YARN上的一個應用運行。從此,通過YARN,Hadoop變成一個真正的數據操作系統。

現在,從交易型數據庫,文檔數據庫及圖數據庫的數據都可以存儲在Hadoop之上,通過基于YARN的應用可以訪問數據而無需復制或者在不同的應用中移動數據,包括MapReduce、Hive、HBase以及Spark等各種應用。從而提供了非常豐富的數據處理和創新能力。一個統一的數據存儲,利用的平臺將是確定的趨勢。
20151222105100078.jpg (600×338)



2. 分層存儲

當前普遍的認知是使用廉價硬件組建Hadoop集群以存儲超大容量數據及提供計算能力,例如,一個1000節點的集群,每個節點附帶20TB的存儲能力,則整個集群可以存儲20PB的數據。所有的機器都有足夠的計算能力以實現Hadoop的名言:“Moving Computation is Cheaper than Moving Data”。
20151222105117528.jpg (723×409)

不同類型的數據集通常都存放在同一個集群中,并被不同的團隊共享以運行各種應用來滿足業務需求。而數據的一個共同特點是其使用率會隨著時間而逐漸降低,越新的數據使用率越高,而越舊數據的訪問次數逐漸降低。初次生成的數據有著最大的使用率,我們將其定義為Hot,基于我們的分析,一周內訪問量下降的數據被稱為Warm,而之后三個月內只有少量訪問的數據被稱為Cold。最后,訪問率降低到每年僅有幾次甚至為零的數據集被稱為Frozen,如下表:
20151222105133519.png (636×153)

由此分析,將不同熱度的數據存放在同一個集群,使用相同的計算和存儲資源則變得越來越有問題,隨著時間的增長,冷數據越來越多,將占據寶貴的存儲和計算資源,而當有更多熱數據需要進來或者作大量計算的時候,相應的存儲變成了瓶頸,很多其他公司甚至提到了刪除低價值數據等做法。在管理和運維超大Hadoop集群時如何處理不同熱度的數據成為非常迫切的需求和現實挑戰。

將低熱度數據集與高熱度數據集作不同存放的策略已勢在必行,在Hadoop 2.3中,HDFS支持了分層存儲,通過在集群中添加歸檔存儲能力為冷數據提供深層存儲能力,且保持對于上層應用的透明性。由于數據依然在同一個集群中,因此當請求需要訪問相應冷數據時依然可以及時獲得。例如,我們可以為上面的例子中添加100個節點,每個節點附帶200TB存儲但僅使用有限的計算資源,于是整個集群的總量將變為40PB (20PB 磁盤+20PB歸檔)。通過相關數據策略,將不同熱度的數據分布到不同存儲上,例如,假設每份數據按Hadoop默認設置復制三份,對于Hot型數據則將三份數據全部存放在快速磁盤上,對于Warm類型數據僅存放一份拷貝在快速磁盤而其余兩份放到歸檔存儲,將Cold和Frozen數據全部存放于歸檔中。從而將不同的數據進行有效分配,示例如下圖:
20151222105152611.jpg (520×225)



分層存儲已經在eBay最大 Hadoop集群上使用,該集群擁有40PB的存儲,我們為之添加了額外的10PB存儲,每個節點附帶220TB容量,由此將Warm、Cold及Frozen數據集逐步進行遷移。而由于僅需有限的計算能力,這些節點的每GB成本比其他節點便宜4倍左右。后續,eBay將持續在這方面進行研究和投入,例如SSD存儲等。

3. 監控、告警及自動化運維

當集群數量達到成千上萬的規模時,監控、告警及自動化運維是保障數據高可用性及為上層應用提供持續服務的基礎。在eBay的日常工作中,Hadoop集群的管理和維護任務相當繁重,而現有的管理和監控工具無法滿足多集群,大規模及分布式收集日志,監控數據的需求。因此eBay研發了名為Eagle的集群監控告警平臺。
20151222105215634.jpg (473×230)



Eagle主要由基礎的核心框架以及針對不同應用領域的諸多app組成,專注于解決大數據時代大型分布式系統自身監控這個復雜的大數據問題,具有高擴展性、高實時性,以及高可用性等特點,同時支持使用機器學習為復雜情況提供預測分析。

輕量級分布式流處理框架:以DAG為基礎模型對通用流處理范式進行抽象,在開發期用戶只需基于DSL API定義監控程序的流式處理邏輯,運行期再選擇實際物理執行環境,默認支持單進程和Storm,同時也支持對于其他執行環境的擴展,比如Spark Streaming 或者 Flink等。

實時流聚合引擎:提供簡單易用的實時流聚合規則定義語法,元數據驅動,動態部署,實現線性擴展的實時監控數據流聚合。

分布式Policy引擎:分布式實時預警規則執行引擎,提供類SQL的描述性規則定義語法以及機器學習自動等多種擴展,支持預警規則的動態加載和分區。

存儲和查詢框架:通用監控數據存儲框架,可用于存儲和查詢日志、指標、警報、事件等多種類型數據,默認支持HBase,并針對HBase進行多種優化和擴展,比如coprocesser,二級索引以及分區等,也支持其他存儲類型的擴展比如RDBMS等,并提供通用的ORM, REST API以及易用強大的類SQL查詢語法。

可定制化監控報表:提供類Notebook的交互式實時可視化分析,也支持進一步選取部分圖標,并定義布局保存為dashboard以供分享或者持續監控。

除了對日常集群指標監控外,Eagle集成了Job Performance Analyzer(JPA),通過實時監控Hadoop 平臺上的作業當前和歷史執行狀態,提供多維度不同粒度的性能分析,支持多種異常預警和性能警告,比如作業運行時間過長、讀寫過慢、數據傾斜、失敗任務比率過多等,可有效在作業無法滿足SLA之前提供預警和性能建議。
20151222105231308.jpg (1137×683)

同時結合機器學習模型,基于任務分布或指標變化等協同預測任務或者服務器節點等可能潛在的異常,并集成Remediation系統對系統進行自動修復。同時,針對異常用戶行為,危險操作等,開發了Eagle DAM(Data Activities Monitoring)的安全監控應用,通過自定義策略及機器學習模型,對關鍵數據,操作等進行監控和報警,防范于未然。

4. 在線交互分析

當數據規模隨著用戶群體的多樣化拓展而不斷增長時,我們的用戶,比如分析師與業務部門,希望能在保持最低延遲水平的前提下繼續使用自己所熟悉的工具和方式來訪問和分析存儲于Hadoop之上的超大規模數據集,并且希望數據的獲取、處理、存儲和分析同時在Hadoop集群上完成,而無需再將數據從一個數據源遷移到另外一個數據源。在研究和評估了多種開源及商業產品后,eBay中國研發中心于2013年中正式立項啟動了OLAP on Hadoop項目,并在2014年10月開源,之后貢獻給了Apache基金會,現在正在孵化階段。
20151222105246026.jpg (1790×828)

Apache Kylin通過映射Hive中星型結構的表,由建模者定義相關維度和度量及其他設置而生成元數據,構建引擎基于元數據自動生成相關的Hive查詢,一系列的MapReduce 任務及HBase操作,從而將數據從Hive中讀出并進行預先計算,將結果存放到HBase。之后,相同數據模型的查詢都將直接讀取已經被計算好的存放于HBase中的數據,從而實現秒級甚至亞秒級查詢延遲。

在該項目初始階段調研和評估過包括Impala,Stinger,Phoenix on HBase, Teradata,MicroStrategy等多種開源和商業選項,最后發現沒有一種可以滿足eBay實際業務需求,為超大規模數據集提供秒級交互式查詢能力。開發團隊在研究過眾多技術、論文和參考實現后,最終選擇了MOLAP的方式,即為數據模型作預先計算,以空間換時間的方式,為前端業務用戶和分析師提供在TB甚至PB級別數據集上交互式的查詢能力。
20151222105303678.jpg (1283×469)

在上面的拓撲圖中,最下面的節點為實際數據,而之上的每一個節點則代表了一種維度組合,理論上所有的SQL查詢都能被該拓撲圖覆蓋,因此進行相關的預先計算后,只要引擎能正確解析查詢語句并訪問正確的數據存放地址就可以在極短的時間內獲得結果。在實際開發過程中,Kylin系統有效地降低了維度,減少了非必要組合的計算,增加了多種壓縮和編碼算法,例如Trie字典編碼技術、Partial Cube計算、分組聚合等等。實際生產環境中,90%ile的查詢延遲在1.5秒,95%ile小于5秒(最近30天)。
20151222105322050.jpg (1452×590)

雖然基于MOLAP的應用系統已經為相關的業務用戶提供了在大規模數據集上的查詢應用,但由于構建Cube需要花費大量的系統資源和時間,一方面對集群帶來了較大的壓力,另一方面很難滿足對實時型要求高的需求。因此,Kylin團隊為此研發了下一代架構,通過Micro Batch模式對流數據進行支持,如下圖所示,每隔固定的時間讀取來自上層數據流中的數據并促發聚合,最終導入到目標Cub俄中,目前已經在eBay內部上線相關案例并取得了良好的反饋。
20151222105341252.jpg (1140×761)

另外,對于Cube引擎也引入了新的算法,實測結果表明能夠提供一倍以上的構建速度,并大大降低對系統資源的要求。此外,我們對Spark也投入了相關的研究,第一版的Spark Cubing引擎業以完成并準備上線實測。

5. 數據生態

以上簡要介紹了eBay最近幾年在大數據平臺方面的發展和主要實踐,基礎平臺的發展和建設離不開用戶,合作伙伴以及管理層幫助和指導,在這個過程中,也逐漸構建起基于Hadoop及企業級數據倉庫的數據生態,各個業務單位,分析團隊利用相關平臺和數據為支持極速變化的業務和快速增長的數據提供豐富的分析和決策支持,共同構建eBay的大數據生態。

連接每個人

通過大數據平臺及應用,eBay能為買家和賣家提供更加良好的用戶體驗和服務,不斷滿足日益變化的市場和環境,并通過創新的技術來降低對環境的影響和依賴。今天,eBay知道你,明天,eBay將理解你并連接你與未來。

eBay的秘密武器:用大數據激發購買欲
eBay上活躍著180萬買家和賣家,網站每天要產生大量的數據。在任何給定的時間點,會有大約350萬件商品上市銷售,通過eBay的拍賣搜索引擎每天有超過250萬次查詢。eBay搜索平臺副總裁Hugh Williams說,eBay的Hadoop集群和Teradata設備中通常保存有10PB的原始數據。在線拍賣網站eBay使用大數據的諸多功能,例如衡量網站性能和檢測欺詐。但他們收集大量數據的更有趣的用途之一,是促使用戶在網站上購買更多的商品。

雖然eBay無法強制用戶購買他們遇到的每一款產品,但eBay充分利用大數據的優勢進行大力促銷。做法之一就是優化搜索引擎和搜索結果,通過收集到的數據分析用戶的行為模式,對結果做出調整。

“如果時光倒流幾年,在eBay使用搜索引擎,你可能會發現它太‘字面’了,”威廉姆斯說,“有些事情你可以向搜索引擎表達,它會從字面上找到用戶所需要的信息,但它并沒有真正理解用戶的意圖。”

“我們一直在努力使我們的搜尋引擎更直觀。”例如,通過使用大數據,eBay發現如果用戶想要購買一個Pilzlampe,這是一種有收藏價值的德國蘑菇燈,當他們在eBay搜索引擎中輸入“pilz lampe”時更可能進行購買,因為這樣輸入會有更多的結果。

在搜索引擎中,簡單地在一個詞中間加一個空格鍵,eBay就可以通過網站提高銷售的機會。有了這樣的信息,eBay通過其搜索引擎改變和重寫了用戶的搜索查詢,添加了同義詞和替代性條款,以便帶來更多的相關結果。

不僅如此,eBay通過使用大數據對以下問題做出預測:列出的產品是否會賣出,會賣什么價錢,這會對拍賣網站的搜索引擎產生多大的影響。

所有這一切都可以增加用戶購買的可能性。

Wlilliams認為,塑造的搜索查詢方式的實施因素是有風險的。“實現一個因素需要幾個月的工程,而且有非常高的風險,因為我們不知道在幫助我們的客戶尋找項目的時候,它對客戶是否真的有用,”他說。這就是為什么eBay通常在網站上運行一些測試,得到用戶的樣本組來衡量響應。

另一個挑戰是將搜索查詢的環境考慮在內。一個例子是,如果用戶查找“GeelongCats”,eBay的搜索引擎可能只是將“Cat”作為關鍵字,并在寵物類里搜索 ——當用戶是搜索運動商品時這沒有太大用處。

Williams表示:“在我們的掌控范圍內有可能出現非常微妙的問題,所以我們需要數據供科學家研究這些問題。”


您可能感興趣的文章:

相關文章

  • 全面剖析eBay的Hadoop集群應用及大數據管理

    全面剖析eBay的Hadoop集群應用及大數據管理

    eBay, 全球最大的在線交易平臺,由程序員Pierre Omidyar于1995年勞動節周末在美國創立,起初叫AuctionWeb,于1997年7月正式改名為eBay,今年九月將迎來其20周年紀念。eBay第
    2015-12-24

最新評論

买宝宝用品赚钱吗 股票入门基础 内蒙古快三遗漏数据表 北京快三开始时间 赌场上的经典顺口溜 甘肃11选5数据分析 北京pk10六码公式教程 上证指数3000点算高吗 山东群英会开奖查询走势图昨天 中国体育彩票竞彩网 中原风采22最新开奖号 广东11选5走势图 金铺子配资 三分彩是正规的吗 信达赢配资 安徽快3开奖结果今天3 华宇软件股票