雲端運算概論Hadoop & MapReduce 介紹
Hadoop 簡介
教師 : 許智威
KSU. CCS
2
Outline
什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase
KSU. CCS
3
Hadoop 的架構HDFS (Hadoop Distributed File System)HBase
KSU. CCS
What is Hadoop ?
4
What is Hadoop?
Hadoop is一個 Apache 專案分散式計算的平台提供使用者簡易撰寫並
執行處理海量資料應用程式的軟體平台。Hadoop Distributed File System (HDFS)
MapReduce Hbase
A Cluster of Machines
Cloud Applications
KSU. CCS
5
Hadoop 起源 (2002~2004)創辦人- Doug-Cutting
Lucene用 Java 設計的高效能文件索引引擎 API索引文件中的每一字,讓搜尋的效率比傳統逐字比較還
要高的多Nutch
Nutch 是基於開放原始碼所開發的網站搜尋引擎利用 Lucene 函式庫開發
6
Hadoop 轉折點Nutch 後來遇到儲存大量網站資料的瓶頸
Google 在一些會議分享他們的三大關鍵技術SOSP 2003 : “The Google File System”OSDI 2004 : “MapReduce : Simplifed Data Processing on
Large Cluster”OSDI 2006 : “Bigtable: A Distributed Storage System for
Structured Data”
7
Hadoop 起源 (2004~Now)Doug-Cutting 參考 Google 提出的三項技術
先後把 Distributed File System (NDFS) 以及 MapReduce 實作在 Nutch
在 2006 年時, Nutch 把分散式計算 (Distributed Computing) 的部分獨立出來,稱之為 Hadoop 專案Yahoo 雇用 Doug-Cutting 建立網頁搜尋引擎
NDFS 也改名為 Hadoop Distributed File System (HDFS)
8
Hadoop 的特色海量 Vast Amounts of Data
擁有儲存與處理大量資料的能力巨量 Big of Data
擁有儲存與處理大量資料的能力經濟 Cost Efficiency
可以用在由一般 PC 所架設的叢集環境內效率 Parallel Performance
透過分散式檔案系統的幫助,以得到快速的回應可靠 Robustness
當某節點發生錯誤,能即時自動取得備份資料及佈署運算資源
9
Google vs. Hadoop開發團隊 Google Apache
贊助者 Google Yahoo, Amazon
資源 open document open source
程式撰寫模式 MapReduce Hadoop MapReduce
檔案系統 GFS HDFS
資料庫系統 Bigtable Hbase
搜尋引擎 Google Nutch
作業系統 Linux Linux / GPL
10
什麼是 HadoopHadoop的架構HDFS (Hadoop Distributed File System)HBase
11
Hadoop 的架構 (1/3)
Hadoop CoreHDFS
MapReduce
HBase
Pig Chukwa HiveAv
roZo
oKee
per
Hadoop 專案包含一些相關子專案
12
Hadoop 的架構 (2/3)
Core : 核心部分包含一些分散式檔案系統及一般輸出入的重要元件
跟介面。Avro :
一個有效率,跨越各種語言的 RPC 的資料序列化系統。MapReduce :
一個分散式資料處理模式及執行環境。HDFS :
一個分散式檔案系統。Pig :
處理大量資料集的資料流語言與執行環境。
13
Hadoop 的架構 (3/3)
HBase : 一個分散式以列 (row) 為導向的資料庫系統。
ZooKeeper : 一個分散式協同服務,可以提供分散式應用程式的原始指令。
Hive : 一個分散式資料倉儲系統,管理 HDFS 上所儲存的資料並提供
SQL 為基礎的詢問語言。Chukwa :
一個分散式資料收集及分析系統。
14
什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase
15
什麼是 HDFS?Hadoop Distributed File
System實現類似 Google File System
分散式檔案系統一個易於擴充的分散式檔案
系統,目的為對大量資料進行分析
運作於廉價的普通硬體上,又可以提供容錯功能
給大量的用戶提供總體性能較高的服務
Hadoop Distributed File System (HDFS)
MapReduce Hbase
A Cluster of Machines
Cloud Applications
16
HDFS 的特色 (1/2)
硬體容錯能力 Fault Tolerance硬體錯誤是正常而非異常自動恢復或故障排除
串流式的資料存取 Streaming data access批次處理多於用戶交互處理高 Throughput 而非低 Latency
大規模資料集 Large data sets and files支援 Petabytes等級的磁碟空間
一致性模型 Coherency Model一次寫入,多次存取簡化一致性處理問題
17
HDFS 的特色 (2/2)
在地運算 Data Locality到資料的節點上計算 > 將資料從遠端複製過來計算
異質平台移植性 Heterogeneous即使硬體不同也可移植、擴充
18
HDFS 架構的兩種關鍵角色名稱節點 NameNode
整個 HDFS只有一個名稱節點負責管理檔案系統的命名空間 (namespace)記錄所有檔案及目錄的 metadata各項檔案屬性權限等資訊的管理及儲存記錄檔案的各個 Blocks置放於哪些資料節點
資料節點 DataNode可以多個資料節點處理使用者存取 Block 的請求,並定時地回報 Block狀態給名稱節點
19
HDFS 的架構
名稱節點 第二組名稱節點
資料節點
20
HDFS 存取流程
Client 名稱節點 第二組名稱節點
(1)檔案名稱
(2)檔案 metadata
(3)存取資料
資料節點
21
HDFS 檔案讀取
DateNode DateNode
2: get block location
NameNode
client Node
DateNode
5: read()4: read()
DistributedFileSystem
HDFSClient
1: open()
3: read() 6: close()FSData
InputStreamclient JVM
22
HDFS 檔案寫入
DateNode DateNode4 4
5 5
2: create file
NameNode
7: complete
client Node
DateNode
5: ack packet4: write packet
DistributedFileSystem
HDFSClient
1: create()
3: write()6: close()
FSData InputStream
client JVM
23
什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase
24
什麼是 HBase?HBase 是一種分散式欄導向
(column-oriented) 資料庫可擴展的資料儲存在 2008 年 Hadoop成為
Apache 的專案時, HBase 也成為其子專案之一。 Hadoop Distributed File System
(HDFS)
MapReduce Hbase
A Cluster of Machines
Cloud Applications
25
Hbase 的好處分散式儲存表格式的數據結構高可擴展性高可用性高效效
26
許多公司都在使用 HBaseAdobe
內部使用 (Structure data)Kalooga
圖片搜尋引擎 http://www.kalooga.com/Meetup
社群聚會網站 http://www.meetup.com/Streamy
Migrate from MySQL to Hbase http://www.streamy.com/Trend Micro
雲端掃毒架構 http://trendmicro.com/Yahoo!
儲存文件 fingerprint 避免重複 http://www.yahoo.com/More - http://wiki.apache.org/hadoop/Hbase/PoweredBy
27
HBase 的關鍵角色 (1/2)
HMaster負責監控 HRegionserver slaves維持 HRegionserver slaves 之間的負載平衡當 HRegionServer 失敗時,轉移該 Hregionserver 上的資
料到其它 HRegionServer 。HRegionserver slaves
接受 Client 端發送的請求 ( 寫 /讀 /瀏覽 )負責回報 HRegions 狀態給 HMaster每個 HRegionServer 會被分配到多個 ( 也可能沒有 )
HRegions
28
HBase 的關鍵角色 (2/2)
ZooKeeper是一個集中式的服務機制存放 HBase 的綱要 ( 包含有哪些表格及 column
families)、所有 HRegion 的位置及監控 HRegionServer 的狀態等
提供維護資源配置資訊、命名、分散式同步機制及群組服務等功能
可為 HBase 提供穩定服務及故障轉移 (failover) 的機制
29
HBase 的架構
30
Hbase 的 Data Model
31
Example
Conceptual View
Physical Storage View
32
Hbase 運作流程
-ROOT-
ZooKeeper
.META.
表格 0
Region
Region
表格 1
Region
Region
表格 n
Region
Region
Region
Region
Region
Region
Region
…找出 -ROOT-位置
找出 .META.Region位置
找出表格Region位置
……
……
Top Related