SlideShare a Scribd company logo
1 of 24
Introduction to Big Data
2
Agenda
• Big Data
• Cloud Computing
• Hadoop
– HDFS
– MapReduce
3
Big Data
4
Big Data
• 所謂巨量資料,就是用現有的一般技術難以管理的大量資料群 …
• 「用現有的一般技術難以管理」指的是: „
– 目前主流的關聯式資料庫系統(Relational DBS)無法管理的結構複雜
資料。 „
– 因為量的增加,導致查詢(Query)資料的回應時間超過容許範圍等的
龐大資料。 „
• 僅僅資料量的增加,並不是導致「用現有的一般技術難以管理」的唯一
主因!
5
Big Data
• Volume (資料量) …
– 巨量資料給人的直覺印象就是Volume,即無法以現有技術進行管理的資 料
量。
– 隨著技術的進步,資料量“大”的定義也會有所改變。如:五年後,可能要
到EB的資料量才稱得上是巨量資料。 „
• Variety (多樣化) …
– 除了過去存在於企業內外的銷售與庫存資訊系統等之結構化資料外,網路上
的日誌資料(Log data)、推特、臉書等社群網站等訊息之半結構化資料,與
各種感測器所取得的非結構化資料,皆已成為待分析並欲從中獲取知識的對
象。 „
• Velocity (迅速性) …
– 現行資料的產生與更新頻率極快。 …如:24小時商店的POS資料,商業網站的
網頁點擊資料,社群網站推文, 全國各地的車輛感測器串流資料…等。
• 重點在如何分析與找到有價值的資料,以及建立資料價值模式,並且採
取行動。
6
Cloud Computing
7
Cloud Computing (雲端運算)
為何要用Cloud (雲)這個字眼?
通常在繪製網路示意圖時,習慣將網際網路(Internet)繪製成一朵雲
(Cloud)。 …
畫一台電腦並以線與雲相連,即代表此電腦連接至Internet,透 過Internet
存取相關服務或內容。如:Web Mail, Web Pages, 線 上掃毒…等。
8
Cloud Computing (雲端運算)
• 雲端三大服務架構
• 架構即服務 (Infrastructure as a Service; IaaS) „
– 使用者可以向雲端服務提供商以租用的方式,使用處理器、儲存容 量、網路等基礎運
算資源,不需自行購買及建置硬體設施。 故IaaS 是 將硬體基礎設施的提供當作一種服
務,依使用量來進行計費。 „
– 企業採用 IaaS 架構的優點在於可隨意部署和執行軟體,但不需建置與 管理底層的基礎
設施,可大幅節省購買硬體的成本,並可隨時且快速 的進行彈性擴充與調整。 …
• 平台即服務 (Platform as a Service; PaaS)
– 此一雲端運算服務是提供「整合了設計、開發、測試、部署、代管等 功能的程式開發
與運作平台」,讓開發人員可以透過網路撰寫程式與 服務,並依據流量或運算資源使
用量來進行收費。 …
• 軟體即服務 (Software as a Service; SaaS) „
– 透過網際網路以提供商業應用軟體的一種服務模式。 „軟體供應商以租賃的概念提供客
戶服務,而非購買,比較常見的模式 是提供一組帳號密碼。
9
Cloud Computing (雲端運算)
• 「雲端」=「網路」⇒「雲端運算」=「網路運算」 „
• 雲端運算的本質大抵承襲自「分散式運算」(Distributed Computing)
– 所謂分散式運算,就是將大型工作區分成小塊後,分別交由眾多 電腦各自進
行運算再彙整結果,以完成單一電腦無力勝任的工作。
– …最著名的例子莫過於1999年啟動的「SETI@home計畫」。該計畫 利用超過
500萬名參與者的個人電腦的空閒時間進行分析無線電訊號的運算,以期能
找出外星生物。
10
Hadoop
11
Hadoop
• Hadoop為Apache軟體基金會旗下的一個開放原始碼專 案,主要是一
套處理巨量資料的軟體平台,提供容易撰 寫與執行應用程式的分散式、
平行運算環境,由Yahoo所贊助。 …
– 以Java開發的自由軟體 …
– 利用HDFS作為分散式檔案系統
– 利用MapReduce作為分散式處理技術 …
– 利用Hbase作為資料庫 …
– 可同時運作上千個節點,以處理Petabyte等級的資料量 „
• Hadoop所能處理之問題特性 …
– 具備Divide-and-Conquer特性之巨量資料處理問題最適合。
12
Hadoop
• „Hadoop早期的基礎架構(生態系)
• 現今的架構
13
Hadoop
• Hadoop的核心架構(HDFS, MapReduce, HBase),皆源自 於Google所
發表之相關論文。
• …巨量
– „擁有儲存與處理巨量資料的能力。 …
• 經濟
– „可以用在由一般PC所架設的叢集環境內。 „
– 每個叢集可以擴充至數以千計的節點。 …
• 效率
– „藉由平行分散檔案的處理,得到快速的回應。 …
• 可靠
– „當某個節點發生錯誤,系統能即時自動的取得備份資料以及佈署運 算資源
。 …
• 具備Scale Out擴充能力
14
HDFS
15
HDFS
• Hadoop Distributed File System (Hadoop分散式檔案系統) …
– Hadoop架構下的分散式檔案儲存系統。 …
– 於Hadoop的運作框架下,將檔案資料切割成許多區塊(Blocks), 並分散儲
存到不同的電腦主機(節點)上。 …
– 採用了主/從(Master/Slave)式結構。 …
– 可以在普通商用電腦上執行。
16
HDFS
• HDFS的運作架構是由多個不同類型節點組成,可分成…
– NameNode „(Master Node)
• 負責記錄與維護HDFS的樹狀結構與Metadata,並開啟、關閉、重命名
檔案或目錄…等
– Metadata有:檔案名稱,檔案與其區塊(Blocks)的對映關係,各區塊所在
的 資料節點(DataNode),其它的檔案屬性(如:建立時間,複本數量…等) „
• 僅有一個NameNode,故NameNode掛掉,會使整個HDFS無法正常
存取,致使所有的工作失敗(SPOF – Single Point of Failure)。 …
– DataNode „(Slave Node)
• 檔案區塊(Blocks)實際儲存的地方,通常有多部DataNode。 „
• DataNode會定期傳送現有的Blocks狀態給NameNode。 „
• 若NameNode發現某個檔案的某個Block之複本數量少於現有的備份設
定時,NameNode會自動增加該Block的複本。 „
• 當某個DataNode掛掉時,NameNode會自動將此DataNode上的所有
Blocks重新配置到其它DataNode上
17
HDFS
• HDFS的檔案區塊備份,預設值為3份備份。 „
• DataNode每3秒傳送Heartbeats給NameNode,讓 NameNode用以
偵測DataNode的問題。
18
HDFS
• HDFS的設計理念
– 將分散式的檔案環境,模擬成單一的檔案目錄系統。 …
– 異地備份 „
• 每個檔案被分割成許多的區塊(Block),每個區塊的大小通常為64MB 或
128MB。
• 系統會將每個區塊複製成許多複本,並分散儲存於不同的資料節點 上。
預設是3個複本,用戶可自行調整。 …
– 具備硬體錯誤容忍能力 „
• 由於是採用一般PC或伺服器,故硬體易出狀況,而HDFS採用複製資料
以因應硬體的故障。 „
• 當偵測到錯誤時,迅速地從複製的資料執行資料回復工作。 …
– 處理大規模資料集 „
• 支援超過1萬個節點、Perabytes等級的資料量空間需求。
19
HDFS
– 資料存取特性 „
• Write-once-read-many存取模式,一次寫入,多次存取。 „
• 檔案一旦建立、寫入,就不允許修改。 …
– 在地運算 „
• 移動運算到資料端比移動資料到運算端來得成本低。 „
• 由於資料的所在位置有被考慮,因此運算工作可以移至距離用戶端最近
的資料節點之複本。
20
MapReduce
21
MapReduce
• MapReduce是一種架構,利用大量的電腦(節點)共同構成 一個叢集,
以計算某些種類的分散式問題。
• 簡化Programmer撰寫分散式平行運算程式的複雜性。 …
– 過去的負擔都是落在User/Programmer身上 …
– MapReduce提供了兩個函數:Map與Reduce,User/Programmer 僅需定
義好這兩個函數,其它分散式平行運算的問題就交給系統 來處理。 …
– 對應演算法中的Divide and Conquer。
22
MapReduce
• MapReduce架構的節點類型可分成: …
– JobTracker (工作分派者) „Master Node „
• 負責接收由Client端傳來的工作 „
• 負責將執行該工作所需執行的各項作業(即:Map與Reduce)分配給
TaskTracker „
• 同時需定義Job Queuing Policy, Priority與Error Handling „
• Single Point of Failure …
– TaskTracker (作業執行者) „Worker Nodes „
• 執行Map與Reduce的作業 „
• 儲存結果與回報作業狀態 „
• 有多個TaskTracker,可分成Mapper與Reducer: …
– Input資料被切割成幾份,就會有幾個Mapper,決定權由Hadoop
控制。 …
– Reducer數量的決定權由使用者控制。
23
MapReduce
• MapReduce架構於各節點間的運作流程如下
 將要執行的MapReduce程式複製到Master與每一臺Worker機器中
 Master決定Map程式與Reduce程式,分別由哪些Worker機器執行
 將所有的資料區塊,分配到執行Map程式的Worker機器中進行Map
 將Map後的結果存入Worker機器的本地磁碟
 執行Reduce程式的Worker機器,遠端讀取每一份Map結果,進行彙整與
排序,同時執行Reduce程式
 將使用者需要的運算結果輸出
24
MapReduce
• MapReduce架構的運作階段 …
– Map階段:透過Map函式將檔案區塊映射到暫時產生的另一組鍵/值對
(Key/Value Pair)
– Shuffle階段:對Map階段的結果做洗牌與排序,並複製到需要的
TaskTracker上 …
– Reduce階段:將具有相同Key的Values整合在一起,進而產生所需的結果

More Related Content

What's hot

Hdfs原理及实现
Hdfs原理及实现Hdfs原理及实现
Hdfs原理及实现baggioss
 
管理資訊系統
管理資訊系統管理資訊系統
管理資訊系統brian401777
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
六角學院 - 資料庫與他們的小夥伴們
六角學院 - 資料庫與他們的小夥伴們六角學院 - 資料庫與他們的小夥伴們
六角學院 - 資料庫與他們的小夥伴們Hao Wei Liou
 
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Wei-Yu Chen
 
High Throughput Computing Technologies
High Throughput Computing TechnologiesHigh Throughput Computing Technologies
High Throughput Computing TechnologiesJazz Yao-Tsung Wang
 
Hdfs introduction
Hdfs introductionHdfs introduction
Hdfs introductionbaggioss
 
淺談台灣巨量資料產業發展現況
淺談台灣巨量資料產業發展現況淺談台灣巨量資料產業發展現況
淺談台灣巨量資料產業發展現況Jazz Yao-Tsung Wang
 
高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨Sky Jian
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Hanborq Inc.
 
知識管理過去現在未來
知識管理過去現在未來知識管理過去現在未來
知識管理過去現在未來Weng Wallace
 
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法Jazz Yao-Tsung Wang
 
Massive data catalog service 2009 12-07-001
Massive data catalog service 2009 12-07-001Massive data catalog service 2009 12-07-001
Massive data catalog service 2009 12-07-001Tein Horng Yuan
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us Simon Hsu
 
Spark Introduction
Spark IntroductionSpark Introduction
Spark IntroductionKevin Zhang
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_saccwangzhonnew
 

What's hot (20)

Hadoop 介紹 20141024
Hadoop 介紹 20141024Hadoop 介紹 20141024
Hadoop 介紹 20141024
 
Hdfs原理及实现
Hdfs原理及实现Hdfs原理及实现
Hdfs原理及实现
 
管理資訊系統
管理資訊系統管理資訊系統
管理資訊系統
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
六角學院 - 資料庫與他們的小夥伴們
六角學院 - 資料庫與他們的小夥伴們六角學院 - 資料庫與他們的小夥伴們
六角學院 - 資料庫與他們的小夥伴們
 
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來
 
High Throughput Computing Technologies
High Throughput Computing TechnologiesHigh Throughput Computing Technologies
High Throughput Computing Technologies
 
Hdfs introduction
Hdfs introductionHdfs introduction
Hdfs introduction
 
NoSQL-MongoDB
NoSQL-MongoDBNoSQL-MongoDB
NoSQL-MongoDB
 
淺談台灣巨量資料產業發展現況
淺談台灣巨量資料產業發展現況淺談台灣巨量資料產業發展現況
淺談台灣巨量資料產業發展現況
 
高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨高可用可扩展数据库架构方案探讨
高可用可扩展数据库架构方案探讨
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
知識管理過去現在未來
知識管理過去現在未來知識管理過去現在未來
知識管理過去現在未來
 
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
 
Dfs ning
Dfs ningDfs ning
Dfs ning
 
Massive data catalog service 2009 12-07-001
Massive data catalog service 2009 12-07-001Massive data catalog service 2009 12-07-001
Massive data catalog service 2009 12-07-001
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us
 
关于Hbase
关于Hbase关于Hbase
关于Hbase
 
Spark Introduction
Spark IntroductionSpark Introduction
Spark Introduction
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_sacc
 

Similar to Introduction to big data

Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsTrendProgContest13
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lakeJames Chen
 
高科技產業資料分析解決方案 Hare DB
高科技產業資料分析解決方案 Hare DB高科技產業資料分析解決方案 Hare DB
高科技產業資料分析解決方案 Hare DBEtu Solution
 
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報Wales Chen
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012James Chen
 
Log collection
Log collectionLog collection
Log collectionFEG
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路li luo
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Etu Solution
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Schubert Zhang
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Wei-Yu Chen
 
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹Apache hadoop and cdh(cloudera distribution) introduction 基本介紹
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹Anna Yen
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Awei Hsu
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计LI Daobing
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to HadoopTechParty@UIC
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術Wei-Yu Chen
 
Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWJazz Yao-Tsung Wang
 
Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)Jazz Yao-Tsung Wang
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introductionTianwei Liu
 

Similar to Introduction to big data (20)

Zh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfsZh tw introduction_to_hadoop and hdfs
Zh tw introduction_to_hadoop and hdfs
 
Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lake
 
高科技產業資料分析解決方案 Hare DB
高科技產業資料分析解決方案 Hare DB高科技產業資料分析解決方案 Hare DB
高科技產業資料分析解決方案 Hare DB
 
賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報賽門鐵克 Storage Foundation 6.0 簡報
賽門鐵克 Storage Foundation 6.0 簡報
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012
 
Log collection
Log collectionLog collection
Log collection
 
云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路云梯的多Namenode和跨机房之路
云梯的多Namenode和跨机房之路
 
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
Track A-1: Cloudera 大數據產品和技術最前沿資訊報告
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系
 
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹Apache hadoop and cdh(cloudera distribution) introduction 基本介紹
Apache hadoop and cdh(cloudera distribution) introduction 基本介紹
 
Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威Hadoop 簡介 教師 許智威
Hadoop 簡介 教師 許智威
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
 
Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TW
 
Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)Big Data Projet Management the Body of Knowledge (BDPMBOK)
Big Data Projet Management the Body of Knowledge (BDPMBOK)
 
IT03
IT03IT03
IT03
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 

Introduction to big data

  • 2. 2 Agenda • Big Data • Cloud Computing • Hadoop – HDFS – MapReduce
  • 4. 4 Big Data • 所謂巨量資料,就是用現有的一般技術難以管理的大量資料群 … • 「用現有的一般技術難以管理」指的是: „ – 目前主流的關聯式資料庫系統(Relational DBS)無法管理的結構複雜 資料。 „ – 因為量的增加,導致查詢(Query)資料的回應時間超過容許範圍等的 龐大資料。 „ • 僅僅資料量的增加,並不是導致「用現有的一般技術難以管理」的唯一 主因!
  • 5. 5 Big Data • Volume (資料量) … – 巨量資料給人的直覺印象就是Volume,即無法以現有技術進行管理的資 料 量。 – 隨著技術的進步,資料量“大”的定義也會有所改變。如:五年後,可能要 到EB的資料量才稱得上是巨量資料。 „ • Variety (多樣化) … – 除了過去存在於企業內外的銷售與庫存資訊系統等之結構化資料外,網路上 的日誌資料(Log data)、推特、臉書等社群網站等訊息之半結構化資料,與 各種感測器所取得的非結構化資料,皆已成為待分析並欲從中獲取知識的對 象。 „ • Velocity (迅速性) … – 現行資料的產生與更新頻率極快。 …如:24小時商店的POS資料,商業網站的 網頁點擊資料,社群網站推文, 全國各地的車輛感測器串流資料…等。 • 重點在如何分析與找到有價值的資料,以及建立資料價值模式,並且採 取行動。
  • 7. 7 Cloud Computing (雲端運算) 為何要用Cloud (雲)這個字眼? 通常在繪製網路示意圖時,習慣將網際網路(Internet)繪製成一朵雲 (Cloud)。 … 畫一台電腦並以線與雲相連,即代表此電腦連接至Internet,透 過Internet 存取相關服務或內容。如:Web Mail, Web Pages, 線 上掃毒…等。
  • 8. 8 Cloud Computing (雲端運算) • 雲端三大服務架構 • 架構即服務 (Infrastructure as a Service; IaaS) „ – 使用者可以向雲端服務提供商以租用的方式,使用處理器、儲存容 量、網路等基礎運 算資源,不需自行購買及建置硬體設施。 故IaaS 是 將硬體基礎設施的提供當作一種服 務,依使用量來進行計費。 „ – 企業採用 IaaS 架構的優點在於可隨意部署和執行軟體,但不需建置與 管理底層的基礎 設施,可大幅節省購買硬體的成本,並可隨時且快速 的進行彈性擴充與調整。 … • 平台即服務 (Platform as a Service; PaaS) – 此一雲端運算服務是提供「整合了設計、開發、測試、部署、代管等 功能的程式開發 與運作平台」,讓開發人員可以透過網路撰寫程式與 服務,並依據流量或運算資源使 用量來進行收費。 … • 軟體即服務 (Software as a Service; SaaS) „ – 透過網際網路以提供商業應用軟體的一種服務模式。 „軟體供應商以租賃的概念提供客 戶服務,而非購買,比較常見的模式 是提供一組帳號密碼。
  • 9. 9 Cloud Computing (雲端運算) • 「雲端」=「網路」⇒「雲端運算」=「網路運算」 „ • 雲端運算的本質大抵承襲自「分散式運算」(Distributed Computing) – 所謂分散式運算,就是將大型工作區分成小塊後,分別交由眾多 電腦各自進 行運算再彙整結果,以完成單一電腦無力勝任的工作。 – …最著名的例子莫過於1999年啟動的「SETI@home計畫」。該計畫 利用超過 500萬名參與者的個人電腦的空閒時間進行分析無線電訊號的運算,以期能 找出外星生物。
  • 11. 11 Hadoop • Hadoop為Apache軟體基金會旗下的一個開放原始碼專 案,主要是一 套處理巨量資料的軟體平台,提供容易撰 寫與執行應用程式的分散式、 平行運算環境,由Yahoo所贊助。 … – 以Java開發的自由軟體 … – 利用HDFS作為分散式檔案系統 – 利用MapReduce作為分散式處理技術 … – 利用Hbase作為資料庫 … – 可同時運作上千個節點,以處理Petabyte等級的資料量 „ • Hadoop所能處理之問題特性 … – 具備Divide-and-Conquer特性之巨量資料處理問題最適合。
  • 13. 13 Hadoop • Hadoop的核心架構(HDFS, MapReduce, HBase),皆源自 於Google所 發表之相關論文。 • …巨量 – „擁有儲存與處理巨量資料的能力。 … • 經濟 – „可以用在由一般PC所架設的叢集環境內。 „ – 每個叢集可以擴充至數以千計的節點。 … • 效率 – „藉由平行分散檔案的處理,得到快速的回應。 … • 可靠 – „當某個節點發生錯誤,系統能即時自動的取得備份資料以及佈署運 算資源 。 … • 具備Scale Out擴充能力
  • 15. 15 HDFS • Hadoop Distributed File System (Hadoop分散式檔案系統) … – Hadoop架構下的分散式檔案儲存系統。 … – 於Hadoop的運作框架下,將檔案資料切割成許多區塊(Blocks), 並分散儲 存到不同的電腦主機(節點)上。 … – 採用了主/從(Master/Slave)式結構。 … – 可以在普通商用電腦上執行。
  • 16. 16 HDFS • HDFS的運作架構是由多個不同類型節點組成,可分成… – NameNode „(Master Node) • 負責記錄與維護HDFS的樹狀結構與Metadata,並開啟、關閉、重命名 檔案或目錄…等 – Metadata有:檔案名稱,檔案與其區塊(Blocks)的對映關係,各區塊所在 的 資料節點(DataNode),其它的檔案屬性(如:建立時間,複本數量…等) „ • 僅有一個NameNode,故NameNode掛掉,會使整個HDFS無法正常 存取,致使所有的工作失敗(SPOF – Single Point of Failure)。 … – DataNode „(Slave Node) • 檔案區塊(Blocks)實際儲存的地方,通常有多部DataNode。 „ • DataNode會定期傳送現有的Blocks狀態給NameNode。 „ • 若NameNode發現某個檔案的某個Block之複本數量少於現有的備份設 定時,NameNode會自動增加該Block的複本。 „ • 當某個DataNode掛掉時,NameNode會自動將此DataNode上的所有 Blocks重新配置到其它DataNode上
  • 17. 17 HDFS • HDFS的檔案區塊備份,預設值為3份備份。 „ • DataNode每3秒傳送Heartbeats給NameNode,讓 NameNode用以 偵測DataNode的問題。
  • 18. 18 HDFS • HDFS的設計理念 – 將分散式的檔案環境,模擬成單一的檔案目錄系統。 … – 異地備份 „ • 每個檔案被分割成許多的區塊(Block),每個區塊的大小通常為64MB 或 128MB。 • 系統會將每個區塊複製成許多複本,並分散儲存於不同的資料節點 上。 預設是3個複本,用戶可自行調整。 … – 具備硬體錯誤容忍能力 „ • 由於是採用一般PC或伺服器,故硬體易出狀況,而HDFS採用複製資料 以因應硬體的故障。 „ • 當偵測到錯誤時,迅速地從複製的資料執行資料回復工作。 … – 處理大規模資料集 „ • 支援超過1萬個節點、Perabytes等級的資料量空間需求。
  • 19. 19 HDFS – 資料存取特性 „ • Write-once-read-many存取模式,一次寫入,多次存取。 „ • 檔案一旦建立、寫入,就不允許修改。 … – 在地運算 „ • 移動運算到資料端比移動資料到運算端來得成本低。 „ • 由於資料的所在位置有被考慮,因此運算工作可以移至距離用戶端最近 的資料節點之複本。
  • 21. 21 MapReduce • MapReduce是一種架構,利用大量的電腦(節點)共同構成 一個叢集, 以計算某些種類的分散式問題。 • 簡化Programmer撰寫分散式平行運算程式的複雜性。 … – 過去的負擔都是落在User/Programmer身上 … – MapReduce提供了兩個函數:Map與Reduce,User/Programmer 僅需定 義好這兩個函數,其它分散式平行運算的問題就交給系統 來處理。 … – 對應演算法中的Divide and Conquer。
  • 22. 22 MapReduce • MapReduce架構的節點類型可分成: … – JobTracker (工作分派者) „Master Node „ • 負責接收由Client端傳來的工作 „ • 負責將執行該工作所需執行的各項作業(即:Map與Reduce)分配給 TaskTracker „ • 同時需定義Job Queuing Policy, Priority與Error Handling „ • Single Point of Failure … – TaskTracker (作業執行者) „Worker Nodes „ • 執行Map與Reduce的作業 „ • 儲存結果與回報作業狀態 „ • 有多個TaskTracker,可分成Mapper與Reducer: … – Input資料被切割成幾份,就會有幾個Mapper,決定權由Hadoop 控制。 … – Reducer數量的決定權由使用者控制。
  • 23. 23 MapReduce • MapReduce架構於各節點間的運作流程如下  將要執行的MapReduce程式複製到Master與每一臺Worker機器中  Master決定Map程式與Reduce程式,分別由哪些Worker機器執行  將所有的資料區塊,分配到執行Map程式的Worker機器中進行Map  將Map後的結果存入Worker機器的本地磁碟  執行Reduce程式的Worker機器,遠端讀取每一份Map結果,進行彙整與 排序,同時執行Reduce程式  將使用者需要的運算結果輸出
  • 24. 24 MapReduce • MapReduce架構的運作階段 … – Map階段:透過Map函式將檔案區塊映射到暫時產生的另一組鍵/值對 (Key/Value Pair) – Shuffle階段:對Map階段的結果做洗牌與排序,並複製到需要的 TaskTracker上 … – Reduce階段:將具有相同Key的Values整合在一起,進而產生所需的結果

Editor's Notes

  1. IaaS AWS PaaS Windows Azure SaaS Hinet ERP