Hadoop 簡介 教師 許智威

Post on 07-Aug-2015

182 views 2 download

Transcript of Hadoop 簡介 教師 許智威

雲端運算概論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位置

……

……