海量資料處理概述
(1)巨大的資料量
(2)資料集特點
--超過80%的資料是非結構化的
--資料量在持續增加
--資料需要長時間儲存,非熱點資料也會被隨機訪問
(3)傳統技術無法勝任大資料集的分析,管理和挖掘
--傳統歡喜資料庫以及一些桌面bi軟體處理的結構化資料在gb級別,無法從更大的資料中發現有意義的資訊
--需要處理的目標資料量一直在增長,傳統技術無法適應這種擴充套件性
海量資料處理的新架構
intel distribution of hadoop
monitoring
(ganglia)
configuration management
(cluster management suite)
language&compiler
(hive)
rpc proxy
(thrift)
distributed batch processing framework
(map/reduce)
real-time database
(hbase)
distributed file system
(hdfs)
coordination service
(zookeeper)
structured data collector
(sqoop)
設計目標
(1)錯誤檢測和快速自動恢復--硬體故障是常態而非異常
(2)為流式資料訪問優化
(3)支援大資料集
--單個檔案大小有數gb或者tb
--可提供高聚合頻寬訪問
--可能夠擴充套件至數千個節點
(4)簡化一致性模型
--一次寫入多次讀
(5)移動計算比一定資料更便宜
主要特點
(1)使用低成本儲存和伺服器構建
(2)存放pb級別的海量資料
(3)高可擴充套件性,實際生產環境擴充套件至4000個節點
(4)高可靠性和容錯性,資料自動複製,可自我修復
(5)高頻寬,高併發訪問
-為離線資料分析而設計,基本上是利用資料並行性進行分布運算而後彙總結果的計算框架
(1)分析問題能夠被並行化,且輸入資料集可以被切分
(2)乙個map函式,在第一階段計算對
(3)乙個reduce函式,在第二階段用於彙總map函式的結果
主要特點
(1)nosql
--面向列,可壓縮,有效降低磁碟i/o,提高liyongl
--多維表,四個維度,其中三個維度可變,適合描述複雜巢狀關係
--靈活的表結構,可動態改變和增加(包括行,列和時間戳)。
--支援單行的acid事務處理
(2)分布式系統
--高效能,支援高速併發寫入和高併發查詢
--可擴充套件,資料自動切分和分布,可動態擴容,無需停機
--高可用性,建立在hdfs分布式檔案系統之上
hive是乙個建立在hadoop/hbase之上的資料倉儲,用於分析結構化海量資料
--採用hdfs或hbase進行資料儲存
--採用map/reduce進行資料操作
基本特點:
--提供類似於sql的查詢語言
--高擴充套件性,動態擴容無須停機
--針對海量資料的高效能查詢和分析系統
--提供靈活的擴充套件性(複雜資料型別,擴充套件函式和指令碼等)
(1)普通的伺服器級別的伺服器
--雙路四核或者六核處理器
--12-24gb記憶體(cpu和記憶體對集群的吞吐量影響很大;使用ecc記憶體,每個核2gb)
--6-12個硬碟(使用大量便宜的硬碟,例如sata或sas硬碟)
--2個千兆乙太網卡
(2)集群網路通常分為兩層
--每個機架有40臺伺服器,由一層交換機互聯
--二層通常採用鏈路聚合
--核心交換機採用冗餘配置
(1)資料倉儲
(2)資料探勘應用
(1)大資料處理
(2)大規模實時資料插入,更新和查詢
(3)快速的key-value查詢
(4)管理非交易類資料(web日誌,關聯式資料庫日誌,應用程式日誌,網路裝置日誌等)
(5)合規檢查(存放大量交易資訊,然後進行資料比對)
(6)資料分析和挖掘(開發map reduce應用進行並行資料分析)
海量資料處理
1 有一千萬條簡訊,有重複,以文字檔案的形式儲存,一行一條,有 重複。請用5分鐘時間,找出重複出現最多的前10條。方法1 可以用雜湊表的方法對1千萬條分成若干組進行邊掃瞄邊建雜湊表。第一次掃瞄,取首位元組,尾位元組,中間隨便兩位元組作為hash code,插入到hash table中。並記錄其位址和...
海量資料處理
給定a b兩個檔案,各存放50億個url,每個url各占用64位元組,記憶體限制是4g,如何找出a b檔案共同的url?答案 可以估計每個檔案的大小為5g 64 300g,遠大於4g。所以不可能將其完全載入到記憶體中處理。考慮採取分而治之的方法。遍歷檔案a,對每個url求取hash url 1000...
海量資料處理
分而治之 hash對映 hash統計 堆 快速 歸併排序 300萬個查詢字串中統計最熱門的10個查詢。針對此類典型的top k問題,採取的對策往往是 hashmap 堆。hash統計 先對這批海量資料預處理。具體方法是 維護乙個key為query字串,value為該query出現次數的hashtab...