大資料分析技術的濫觴 0727
TRANSCRIPT
大資料分析技術的濫觴 Hadoop MapReduce
莊家雋
1
生活中的推薦系統
• YouTube• 博客來
Google 流感預測趨勢
3
大資料在食的應用
• 預測與分析社會趨勢– 食安危機
4
大資料在行的應用
5
• 幫你查即時路況的地理資訊務
電腦不只會選花生,還會選伴侶
6
大資料應用的 LIFE CYCLE
7
傳統計算機科學思維
• 有一個問題,找出一個答案• 傳統的資料處理模式:集中式• 讓電腦快一千倍,這個問題就解的出來
8
CPU
Mem
disk
CPU
Memory
disk
CPU
Memory
disk
磁碟陣列
新式計算機科學思維
• 有一堆資料,找出有用的情報• 給我的資料多一千倍,這個問題才解得出來
• 以電腦翻譯為例:– 傳統方法:字典 + 文法 + 例外
• 干货 vs. 乾貨 or 幹貨…– 統計翻譯:比對同一文章之不同語語版本,建立統計
模式• 以拼字校正為例:– 傳統方法:建立字典– Google 法:看大家都怎麼打
9
大資料面臨的三個挑戰
10
大資料的 3V
Volume:資料量非常龐大,
單獨的表格、電腦主機、資料庫無法存放
Velocity:資料產生的速度太快
,以致於系統無法即時提供反應。
Variety:不同的來源、格式、
類型,資料內容又包含了不需要的成份。
解決 Variety
11
大資料的 3V
Volume:資料量非常龐大,
單獨的表格、電腦主機、資料庫無法存放
Velocity:資料產生的速度太快
,以致於系統無法即時提供反應。
Variety:不同的來源、格式、
類型,資料內容又包含了不需要的成份。
資料來源不夠〝乾淨〞
• 讀取資料、清洗資料– 非常無趣,且通常要花掉專案 80% 的時間,但又會影
響到分析的成果
12
無法預期的資料格式與內容
• 使用需事先定義好資料格式的方式不再適合– 資料庫表格
• 自我描述的資料格式– Key/value 型式的資料格式– XML 檔案 , JSON 檔案– NoSQL HBase 資料庫
13
如何透過分散式系統解決 Volume
14
大資料的 3V
Volume:資料量非常龐大,
單獨的表格、電腦主機、資料庫無法存放
Velocity:資料產生的速度太快
,以致於系統無法即時提供反應。
Variety:不同的來源、格式、
類型,資料內容又包含了不需要的成份。
計算機科學發展的三個定理
• Moore’s Law– 每 18 個月晶片效能會提高一倍
• Nielsen Law– 每 20 個月網路頻寬會增加一倍
• Kryder’s Law– 每 13 個月相同價格的儲存容量會增加一倍
15
16
樣本 = 母體 時代來臨
• 整體的資料搜集困難,導致統計學的發展
• 抽樣的隨機性決定統計的正確性
• 當樣本 = 母體,要用來處理的資料通常都很大
17
當資料多出 1000 倍
• 如何儲存這麼多的資料– 1000 億個網頁– 每個網頁大小 20KB– 1000 億個網頁 * 20KB = 2000TB
• 讀個檔案都要讀到天荒地老– 硬碟讀取速度: 50MB/sec– 讀完全部的網頁: 40000000 秒 = 460 天
• 更不用想要去處理它
18
一個便當吃不飽,可以吃二個
• 一台機器無法處理,就用多台機器同時處理– 分散式系統– 易於橫向擴充, scale-out
CPU
Memory
disk
CPU
Memory
disk
CPU
Memory
disk
CPU
Memory
disk
CPU
Memory
disk
CPU
Memory
disk
分散式系統的挑戰
• CAP 定理– 資料一致性: [C]onsistency– 系統可用系: [A]vailability– 分區容忍性: [P]artition Tolerance
• 全世界最大的廣告公司 Google– 提出 GFS 、 MapReduce 、 BigTable 等針對大資料
應用的分散式技術
20
自己打造一個分散式系統 ?
• 開發一個分散式系統很難– 主機間如何溝通– 系統的可靠性設計– …– 用人家寫好的很簡單
• Hadoop 生態系– HDFS– MapReduce– HBase– Hive…
21
分散式檔案系統: HDFS
• 在分散式的儲存環境裏,提供單一的目錄系統• 每個檔案被分割成許多區塊並進行異地備份
22
HDFS檔案 1 檔案 2
分散式檔案系統: HDFS
• 移動運算到資料端比移動資料到運算端來的成本低– 減少資料搬運,實現在地運算
23
CPU
Memory
disk
磁碟陣列
分散式運算系統: MapReduce
• 一個問題被分割之後而成的小問題。解決一個問題,其實就是要解決其所有子問題。
• 分而治之,各個擊破– 傳統方法
• 分而治之,”同時”各個擊破– MapReduce
• M ap :解決每個子問題• Reduce :將子問題的解答做匯總
• 針對 key/value 的資料類型做分析24
台灣最熱衷的全民運動
25
•台北市 10 個選區,共 100 萬票,要算出每個候選人的得票數
Id :A151 選 2
號Id :
B257 選 5號
號次 票數
1 1
1 1
3 1
… …
號次 票數
2 1
1 1
… …
號次 票數
3 1
2 1
1 1
號次 票數
1 1
3 1
3 …
號次 票數
3 1
2 1
3 1
監票人 1[ 負責 1 區 ] 監票人 2
[ 負責 2 區 ]監票人 3
[ 負責 3 區 ]監票人 4
[ 負責 4 區 ]監票人 5
[ 負責 5 區 ]
26
號次 票數
1 1
1 1
1 1
1 1
1 …
中選會[ 負責 全部的候選人 ]
號次 票數
5 1
1 1
7 1
… …
號次 票數
2 1
1 1
… …
號次 票數
5 1
2 1
1 1
號次 票數
1 1
5 1
3 …
號次 票數
4 1
2 1
6 1
由各投開票所送到中選會
號次 票數
2 1
2 1
2 1
2 1
2 …
號次 票數
3 1
3 1
3 1
3 1
3 …
號次 總票數
1 187532
號次 總票數
2 574821
號次 總票數
3 237647
日誌分析 - Mapper
27
•(k1, v1) list(k2, v2)
日誌分析 - Reducer
28
•(k2, list(v2)) (k3,v3)
凡事都有一個 BUT
• 對已經存在的一大堆資料,提供一個有效的平行運算機制– 得到結果所需的時間不夠快– 通常用在歷史資料分析– 批次性處理
• 對於快速產生的資料無法立即回應– 即時性處理
29
如何透過分散式系統解決 Velocity
30
大資料的 3V
Volume:資料量非常龐大,
單獨的表格、電腦主機、資料庫無法存放
Velocity:資料產生的速度太快
,以致於系統無法即時提供反應。
Variety:不同的來源、格式、
類型,資料內容又包含了不需要的成份。
即時性資料處理
• 對於即時資訊、訊號需要立馬提供反應
31
步驟 1 步驟 2 步驟 3 步驟 4
主機 1 主機 2 主機 3
主機 4 主機 5
即時處理遇上批次處理
• 由批次處理分析歷史資料• 由即時處理做出快速回應
32
Yahoo! 的 PinBall 系統
• 結合批次處理與即時處理的優點– 批次推荐:找出消費者有興趣的產品– 即時推荐:找出潛在的購買者
33
國網中心提供的服務
• 實體機器 Hadoop平台– HDFS 、 MapReduce 、 Hive 、 HBase
• 虛擬機器 Hadoop平台: EasyCloud• 建置與開發教育訓練
34
結語
• 大資料應用的重點在資料分析
• 不論是MapRedcue 還是 Excel ,能找出潛在資訊的工具就是好工具
• 當單一機器無法處理時,可以使用分散式系統的技術幫助我們
• 國網中心提供 Hadoop平台與教育訓練,提供國內學研界與政府機構使用
35
大資料在衣的應用
• 幫你決定如何如何穿衣的氣象服務
36
大資料在住的應用
• 幫你找房子的地理資訊務
37