轉帖|行業資訊|編輯:龔雪|2014-08-11 14:54:29.000|閱讀 640 次
概述:百度作為全球最大的中文搜索引擎公司,提供基于搜索引擎的各種產品,幾乎覆蓋了中文網絡世界中所有的搜索需求,因此,百度對海量數據處理的要求是比較高的, 要在線下對數據進行分析,還要在規定的時間內處理完并反饋到平臺上。百度在互聯網領域的平臺需求要通過性能較好的云平臺進行處理了,Hadoop就是很好 的選擇。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
百度作為全球最大的中文搜索引擎公司,提供基于搜索引擎的各種產品,幾乎覆蓋了中文網絡世界中所有的搜索需求,因此,百度對海量數據處理的要求是比較高的, 要在線下對數據進行分析,還要在規定的時間內處理完并反饋到平臺上。百度在互聯網領域的平臺需求要通過性能較好的云平臺進行處理了,Hadoop就是很好 的選擇。在百度,Hadoop主要應用于以下幾個方面:
日志的存儲和統計;
網頁數據的分析和挖掘;
商業分析,如用戶的行為和廣告關注度等;
在線數據的反饋,及時得到在線廣告的點擊情況;
用戶網頁的聚類,分析用戶的推薦度及用戶之間的關聯度。
MapReduce主要是一種思想,不能解決所有領域內與計算有關的問題,百度的研究人員認為比較好的模型應該如下圖:
HDFS 實現共享存儲,一些計算使用MapReduce解決,一些計算使用MPI解決,而還有一些計算需要通過兩者來共同處理。因為MapReduce適合處理數 據很大且適合劃分的數據,所以在處理這類數據時就可以用MapReduce做一些過濾,得到基本的向量矩陣,然后通過MPI進一步處理后返回結果,只有整 合技術才能更好地解決問題。
百度現在擁有3個Hadoop集群,總規模在700臺機器左右,其中有100多臺新機器和600多臺要淘汰的機器(它們的計算能力相當于200多臺新機器),不過其規模還在不斷的增加中。現在每天運行的MapReduce任務在3000個左右,處理數據約120TB/天。
百度為了更好地用Hadoop進行數據處理,在以下幾個方面做了改進和調整:
(1)調整MapReduce策略
限制作業處于運行狀態的任務數;
調整預測執行策略,控制預測執行量,一些任務不需要預測執行;
根據節點內存狀況進行調度;
平衡中間結果輸出,通過壓縮處理減少I/O負擔。
(2)改進HDFS的效率和功能
權限控制,在PB級數據量的集群上數據應該是共享的,這樣分析起來比較容易,但是需要對權限進行限制;
讓分區與節點獨立,這樣,一個分區壞掉后節點上的其他分區還可以正常使用;
修改DSClient選取塊副本位置的策略,增加功能使DFSClient選取塊時跳過出錯的DataNode;
解決VFS(Virtual File System)的POSIX(Portable Operating System Interface of Unix)兼容性問題。
(3)修改Speculative的執行策略
采用速率倒數替代速率,防止數據分布不均時經常不能啟動預測執行情況的發生;
增加任務時必須達到某個百分比后才能啟動預測執行的限制,解決reduce運行等待map數據的時間問題;
只有一個map或reduce時,可以直接啟動預測執行。
(4)對資源使用進行控制
對應用物理內存進行控制。如果內存使用過多會導致操作系統跳過一些任務,百度通過修改Linux內核對進程使用的物理內存進行獨立的限制,超過閾值可以終止進程。
分組調度計算資源,實現存儲共享、計算獨立,在Hadoop中運行的進程是不可搶占的。
在大塊文件系統中,X86平臺下一個頁的大小是4KB。如果頁較小,管理的數據就會很多,會增加數據操作的代價并影響計算效率,因此需要增加頁的大小。
百度在使用Hadoop時也遇到了一些問題,主要有:
百度下一步的工作重點可能主要會涉及以下內容:
百度同時也在使用Hypertable,它是以Google發布的BigTable為基礎的開源分布式數據存儲系統,百度將它作為分析用戶行為的平臺,同時在元數據集中化、內存占用優化、集群安全停機、故障自動恢復等方面做了一些改進。
來源:開源中國 作者:MrMichael
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網