Hadoop 簡介 教師 許智威

32
雲雲雲雲雲雲 Hadoop & MapReduce 雲雲 Hadoop 雲雲 教教 : 教教教 KSU. CCS

Transcript of Hadoop 簡介 教師 許智威

Page 1: Hadoop 簡介 教師 許智威

雲端運算概論Hadoop & MapReduce 介紹

Hadoop 簡介

教師 : 許智威

KSU. CCS

Page 2: Hadoop 簡介 教師 許智威

2

Outline

什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase

KSU. CCS

Page 3: Hadoop 簡介 教師 許智威

3

Hadoop 的架構HDFS (Hadoop Distributed File System)HBase

KSU. CCS

What is Hadoop ?

Page 4: Hadoop 簡介 教師 許智威

4

What is Hadoop?

Hadoop is一個 Apache 專案分散式計算的平台提供使用者簡易撰寫並

執行處理海量資料應用程式的軟體平台。Hadoop Distributed File System (HDFS)

MapReduce Hbase

A Cluster of Machines

Cloud Applications

KSU. CCS

Page 5: Hadoop 簡介 教師 許智威

5

Hadoop 起源 (2002~2004)創辦人- Doug-Cutting

Lucene用 Java 設計的高效能文件索引引擎 API索引文件中的每一字,讓搜尋的效率比傳統逐字比較還

要高的多Nutch

Nutch 是基於開放原始碼所開發的網站搜尋引擎利用 Lucene 函式庫開發

Page 6: Hadoop 簡介 教師 許智威

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”

Page 7: Hadoop 簡介 教師 許智威

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)

Page 8: Hadoop 簡介 教師 許智威

8

Hadoop 的特色海量 Vast Amounts of Data

擁有儲存與處理大量資料的能力巨量 Big of Data

擁有儲存與處理大量資料的能力經濟 Cost Efficiency

可以用在由一般 PC 所架設的叢集環境內效率 Parallel Performance

透過分散式檔案系統的幫助,以得到快速的回應可靠 Robustness

當某節點發生錯誤,能即時自動取得備份資料及佈署運算資源

Page 9: Hadoop 簡介 教師 許智威

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

Page 10: Hadoop 簡介 教師 許智威

10

什麼是 HadoopHadoop的架構HDFS (Hadoop Distributed File System)HBase

Page 11: Hadoop 簡介 教師 許智威

11

Hadoop 的架構 (1/3)

Hadoop CoreHDFS

MapReduce

HBase

Pig Chukwa HiveAv

roZo

oKee

per

Hadoop 專案包含一些相關子專案

Page 12: Hadoop 簡介 教師 許智威

12

Hadoop 的架構 (2/3)

Core : 核心部分包含一些分散式檔案系統及一般輸出入的重要元件

跟介面。Avro :

一個有效率,跨越各種語言的 RPC 的資料序列化系統。MapReduce :

一個分散式資料處理模式及執行環境。HDFS :

一個分散式檔案系統。Pig :

處理大量資料集的資料流語言與執行環境。

Page 13: Hadoop 簡介 教師 許智威

13

Hadoop 的架構 (3/3)

HBase : 一個分散式以列 (row) 為導向的資料庫系統。

ZooKeeper : 一個分散式協同服務,可以提供分散式應用程式的原始指令。

Hive : 一個分散式資料倉儲系統,管理 HDFS 上所儲存的資料並提供

SQL 為基礎的詢問語言。Chukwa :

一個分散式資料收集及分析系統。

Page 14: Hadoop 簡介 教師 許智威

14

什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase

Page 15: Hadoop 簡介 教師 許智威

15

什麼是 HDFS?Hadoop Distributed File

System實現類似 Google File System

分散式檔案系統一個易於擴充的分散式檔案

系統,目的為對大量資料進行分析

運作於廉價的普通硬體上,又可以提供容錯功能

給大量的用戶提供總體性能較高的服務

Hadoop Distributed File System (HDFS)

MapReduce Hbase

A Cluster of Machines

Cloud Applications

Page 16: Hadoop 簡介 教師 許智威

16

HDFS 的特色 (1/2)

硬體容錯能力 Fault Tolerance硬體錯誤是正常而非異常自動恢復或故障排除

串流式的資料存取 Streaming data access批次處理多於用戶交互處理高 Throughput 而非低 Latency

大規模資料集 Large data sets and files支援 Petabytes等級的磁碟空間

一致性模型 Coherency Model一次寫入,多次存取簡化一致性處理問題

Page 17: Hadoop 簡介 教師 許智威

17

HDFS 的特色 (2/2)

在地運算 Data Locality到資料的節點上計算 > 將資料從遠端複製過來計算

異質平台移植性 Heterogeneous即使硬體不同也可移植、擴充

Page 18: Hadoop 簡介 教師 許智威

18

HDFS 架構的兩種關鍵角色名稱節點 NameNode

整個 HDFS只有一個名稱節點負責管理檔案系統的命名空間 (namespace)記錄所有檔案及目錄的 metadata各項檔案屬性權限等資訊的管理及儲存記錄檔案的各個 Blocks置放於哪些資料節點

資料節點 DataNode可以多個資料節點處理使用者存取 Block 的請求,並定時地回報 Block狀態給名稱節點

Page 19: Hadoop 簡介 教師 許智威

19

HDFS 的架構

名稱節點 第二組名稱節點

資料節點

Page 20: Hadoop 簡介 教師 許智威

20

HDFS 存取流程

Client 名稱節點 第二組名稱節點

(1)檔案名稱

(2)檔案 metadata

(3)存取資料

資料節點

Page 21: Hadoop 簡介 教師 許智威

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

Page 22: Hadoop 簡介 教師 許智威

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

Page 23: Hadoop 簡介 教師 許智威

23

什麼是 HadoopHadoop 的架構HDFS (Hadoop Distributed File System)HBase

Page 24: Hadoop 簡介 教師 許智威

24

什麼是 HBase?HBase 是一種分散式欄導向

(column-oriented) 資料庫可擴展的資料儲存在 2008 年 Hadoop成為

Apache 的專案時, HBase 也成為其子專案之一。 Hadoop Distributed File System

(HDFS)

MapReduce Hbase

A Cluster of Machines

Cloud Applications

Page 25: Hadoop 簡介 教師 許智威

25

Hbase 的好處分散式儲存表格式的數據結構高可擴展性高可用性高效效

Page 26: Hadoop 簡介 教師 許智威

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

Page 27: Hadoop 簡介 教師 許智威

27

HBase 的關鍵角色 (1/2)

HMaster負責監控 HRegionserver slaves維持 HRegionserver slaves 之間的負載平衡當 HRegionServer 失敗時,轉移該 Hregionserver 上的資

料到其它 HRegionServer 。HRegionserver slaves

接受 Client 端發送的請求 ( 寫 /讀 /瀏覽 )負責回報 HRegions 狀態給 HMaster每個 HRegionServer 會被分配到多個 ( 也可能沒有 )

HRegions

Page 28: Hadoop 簡介 教師 許智威

28

HBase 的關鍵角色 (2/2)

ZooKeeper是一個集中式的服務機制存放 HBase 的綱要 ( 包含有哪些表格及 column

families)、所有 HRegion 的位置及監控 HRegionServer 的狀態等

提供維護資源配置資訊、命名、分散式同步機制及群組服務等功能

可為 HBase 提供穩定服務及故障轉移 (failover) 的機制

Page 29: Hadoop 簡介 教師 許智威

29

HBase 的架構

Page 30: Hadoop 簡介 教師 許智威

30

Hbase 的 Data Model

Page 31: Hadoop 簡介 教師 許智威

31

Example

Conceptual View

Physical Storage View

Page 32: Hadoop 簡介 教師 許智威

32

Hbase 運作流程

-ROOT-

ZooKeeper

.META.

表格 0

Region

Region

表格 1

Region

Region

表格 n

Region

Region

Region

Region

Region

Region

Region

…找出 -ROOT-位置

找出 .META.Region位置

找出表格Region位置

……

……