1. 程式人生 > >9 海量數據處理

9 海量數據處理

設計 由於 用戶需求 apr 數據庫 reduce img bloom ima

  • 計算機硬件的擴容確實可以極大地提高程序的處理速度,但考慮到其技術、成本等方面的因素,它並非一條“放之四海而皆準”的途徑。而隨著互聯網技術的發展,雲計算、物聯網、移動通信技術的興起,每時每刻,數以億計的用戶產生著數量巨大的信息,海量數據時代已經來臨。由於通過對海量數據的挖掘能有效地揭示用戶的行為模式,加深對用戶需求的理解,提取用戶的集體智慧,從而為研發人員決策提供依據,提升產品用戶體驗,進而占領市場,因此當前各大互聯網公司研究都將重點放在了海量數據處理.上,但是,只寄希望於硬件擴容是很難滿足海量數據處理需要的,如何利用現有條件進行海量信息處理已經成為各大互聯網公司亟待解決的問題。所以,海量信息處理日益成為當前程序員筆試面試中一個新的亮點。
9.1 問題分析 海量信息,即大規模數據。隨著互聯網技術的發展,互聯網上的信息越來越多,如何從海量信,息中提取有用信息成為當前互聯網技術發展必須面對的問題。 從海量數據中提取信息,不同於從常規量級數據中提取信息,在海量信息中提取有用數據,會存在以下幾個方面的問題:首先,數據量過大,數據中什麽情況都可能存在,如果信息數量只有20條,人工可以逐條進行查找、比對,可當數據規模擴展到上百條、數千條、數億條,甚至更多時,僅僅通過手工已經無法解決,必須借助工具或者程序進行處理。其次,處理海量數據信息,除了要有良好的軟硬件配置,還需要合理使用工具,合理分配系統資源,通常情況下,如果需要處理的數據量非常大,超過了TB (1 TB = 1024 GB)級,小型機、大型工作站是要考慮的,普通的計算機如果有好的方法也可以考慮,例如通過聯機做成工作集群。最後,信息處理海量數據時,要求很高的處理方法和技巧,如何進行數據挖掘算法的設計以及如何進行數據的存儲訪問等都是研究的難點。本節的重點將放在如何運用好的方法和技巧來進行海量數據信息處理。 9.2 基本方法
針對含量數據的處理,可以使用的方法非常多,常見的方法有Hash法、Bit - map法、Bloom filter法、數據庫優化法、倒排索引法、外排序法、Trie樹、堆、雙層桶法以及MapReduce法。 技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

9 海量數據處理