轉(zhuǎn)帖|使用教程|編輯:龔雪|2014-10-11 09:35:47.000|閱讀 363 次
概述:Hadoop在Facebook的應用
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Facebook作為全球知名的社交網(wǎng)站,擁有超過3億的活躍用戶,其中約有3千萬用戶至少每天更新一次自己的狀態(tài);用戶每月總共上傳10億余張照 片、1千萬個視頻;以及每周共享10億條內(nèi)容,包括日志、鏈接、新聞、微博等。因此Facebook需要存儲和處理的數(shù)據(jù)量是非常巨大的,每天新增加 4TB壓縮后的數(shù)據(jù),掃描135TB大小的數(shù)據(jù),在集群上執(zhí)行Hive任務超過7500次,每小時需要進行8萬次計算,所以高性能的云平臺對 Facebook來說是非常重要的,而Facebook主要將Hadoop平臺用于日志處理、推薦系統(tǒng)和數(shù)據(jù)倉庫等方面。
Facebook將數(shù)據(jù)存儲在利用Hadoop/Hive搭建的數(shù)據(jù)倉庫上,這個數(shù)據(jù)倉庫擁有4800個內(nèi)核,具有5.5PB的存儲量,每個節(jié)點可 存儲12TB大小的數(shù)據(jù),同時,它還具有兩層網(wǎng)絡拓撲,如圖3-5所示。Facebook中的MapReduce集群是動態(tài)變化的,它基于負載情況和集群 節(jié)點之間的配置信息可動態(tài)動。
圖 3-6為Facebook的數(shù)據(jù)倉庫架構(gòu),在這個架構(gòu)中,網(wǎng)絡服務器和內(nèi)部服務生成日志數(shù)據(jù),這里Facebook使用開源日志收集系統(tǒng),它可以將數(shù)以百 計的日志數(shù)據(jù)集存儲在NFS服務器上,但大部分日志數(shù)據(jù)會復制到同一個中心的HDFS實例中,而HDFS存儲的數(shù)據(jù)都會放到利用Hive構(gòu)建的數(shù)據(jù)倉庫 中。Hive提供了類SQL的語言來與MapReduce結(jié)合,創(chuàng)建并發(fā)布多種摘要和報告,以及在它們的基礎上進行歷史分析。Hive上基于瀏覽器的接口 允許用戶執(zhí)行Hive查詢。Oracle和MySQL數(shù)據(jù)庫用來發(fā)布這些摘要,這些數(shù)據(jù)容量相對較小,但查詢頻率較高并需要實時響應。一些舊的數(shù)據(jù)需要及 時歸檔,并存儲在較便宜的存儲器上,如圖3-7所示。
下 面介紹Facebook在AvatarNode和調(diào)度策略方面所做的一些工作。AvatarNode主要用于HDFS的恢復和啟動,若HDFS崩潰,原有 技術(shù)恢復首先需要花10~15分鐘來讀取12GB的文件鏡像并寫回,還要用20~30分鐘處理來自2000個DataNode的數(shù)據(jù)塊報告,最后用 40~60分鐘來恢復崩潰的NameNode和部署軟件。表3-1說明了BackupNode和AvatarNode的區(qū)別,AvatarNode作為普 通的NameNode啟動,處理所有來自DataNode的消息。AvatarDataNode與DataNode相似,支持多線程和針對多個主節(jié)點的多 隊列,但無法區(qū)分原始和備份。人工恢復使用AvatarShell命令行工具,AvatarShell執(zhí)行恢復操作并更新ZooKeeper的 zNode,恢復過程對用戶來說是透明的。分布式Avatar文件系統(tǒng)實現(xiàn)在現(xiàn)有文件系統(tǒng)的上層。
表3-1 BackupNode和AvatarNode的區(qū)別
基于位置的調(diào)度策略在實際應用中存在著一些問題:如需要高內(nèi)存的任務可能會被分配給擁有低內(nèi)存的TaskTracker;CPU資源有時未被充分利 用;為不同硬件的TaskTracker進行配置也比較困難等。Facebook采用基于資源的調(diào)度策略,即公平享有調(diào)度方法,實時監(jiān)測系統(tǒng)并收集CPU 和內(nèi)存的使用情況,調(diào)度器會分析實時的內(nèi)存消耗情況,然后在任務之間公平分配任務的內(nèi)存使用量。它通過讀取/proc/目錄解析進程樹,并收集進程樹上所 有的CPU和內(nèi)存的使用信息,然后通過TaskCounters在心跳(heartbeat)時發(fā)送信息。
Facebook的數(shù)據(jù)倉庫使用Hive,其構(gòu)架如圖3-8所示,有關(guān)Hive查詢語言的相關(guān)知識可查閱第11章的內(nèi)容。這里HDFS支持三種文件 格式:文本文件(TextFile),方便其他應用程序讀寫;順序文件(SequenceFile),只有Hadoop能夠讀取并支持分塊壓 縮;RCFile,使用順序文件基于塊的存儲方式,每個塊按列存儲,這樣有較好的壓縮率和查詢性能。Facebook未來會在Hive上進行改進,以支持 索引、視圖、子查詢等新功能。
現(xiàn)在Facebook使用Hadoop遇到的挑戰(zhàn)有:
作者:陸嘉恒
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)