九章it求職直播課程之系統(tǒng)設計班-課件distributed_第1頁
九章it求職直播課程之系統(tǒng)設計班-課件distributed_第2頁
九章it求職直播課程之系統(tǒng)設計班-課件distributed_第3頁
九章it求職直播課程之系統(tǒng)設計班-課件distributed_第4頁
九章it求職直播課程之系統(tǒng)設計班-課件distributed_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

掃描

/獲取

面試題及

解答:ninechapter:

ht

/ninechapter知乎:

http://z

/jiuzhang官網(wǎng):http:

系統(tǒng)設計Distributed

System

Design(九章

課件)課程版本v5.1

本節(jié)主講人:北丐老師:九章課程不允許

,否則將 ,賠償損失第1頁分布式系統(tǒng)?一言以概之:用多臺機器去解決一臺機器上不能夠解決的問題。比如: 不夠?QPS太大?第2頁Distributed

File

System

( File

System)怎么有效

數(shù)據(jù)?No

SQL

底層需要一個文件系統(tǒng)MapReduce怎么快速處理數(shù)據(jù)?Bigtable

=

No-SQL

DataBase怎么連接底層

和上層數(shù)據(jù)Overview谷歌三劍客第3頁Design

Distributed

File

System

(File

System)Overview

of

today第4頁Master

Slave

Pattern.How

to

check

and

handle

system

failure

anderror.How

to

design

Distributed

File

System.第5頁你會掌握Design

Distributed

File

System了解分布式文件系統(tǒng)后可以做什么?, 面試可能會考到.學習經(jīng)典系統(tǒng),對其他系統(tǒng)設計也有幫助.比如如何處理failure和recovery.第6頁Distributed

File

SystemHadoop

Distributed

File

System(HDFS

叫做“很多分手”)VSFile

System(GFS)俗稱“高富帥”又叫“剛分手”Distributed

File

SystemCompany開源GFSNoHDFSYahoo(Alitaba)OpenSource

of

GFSYes第7頁按照4S分析Scenario

場景分析Service

服務Storage理清楚work

solutionScale

升級優(yōu)化Overview第8頁Scenario

場景分析需要設計哪些功能第9頁一個文件.需求1用戶寫入一個文件,用戶支持多大的文件?越大越好?比如>1000T需求2多臺機器

這些文件支持多少臺機器?越多越好?10萬臺,2007

yearScenario

場景分析第10頁Service

服務第11頁Service

服務第12頁Client+ServerService

服務Server第13頁多臺機器怎么溝通?+第14頁Service

服務serverServerServerPeer

to

peer誰也看不慣誰第15頁Service

服務serverServerServermasterMaster

+Slave聽

的好比“

和他的小弟”What

is

master?Master

也是一臺機器第16頁DBGFS(HDFS)Master數(shù)據(jù)管理者(不

數(shù)據(jù))SlaveBackUp被管理者(

實際文件,partition關系)Master+Slave架構第17頁比較少)Peer

2

Peer( et,Cassandra,不是課程重點,Advantage一臺機器掛了還可以工作Disadvantage多臺機器需要經(jīng)常通信保持他們數(shù)據(jù)一致Master

SlaveAdvantageSimple

Design數(shù)據(jù)很容易保持一致Disadvantage單master要掛Final

DecisionMaster

+

Slave單master掛了重啟就是。掛的概率在0.1%Storage第18頁Storage第19頁大文件存在哪?內(nèi)存?數(shù)據(jù)庫?文件系統(tǒng)?Storage第20頁大文件存在哪?內(nèi)存?數(shù)據(jù)庫?文件系統(tǒng)?怎么存在文件系統(tǒng)里面呢?操作系統(tǒng)基礎知識怎么存文件的?Storage第21頁Interviewer:

How

to

save

a

filein

one

machine?普通的操作系統(tǒng)是怎么做的呢?100G第22頁DengChao.mp4一個文件有什么東西?第23頁How

to

save

a

file

in

one

machineDiskMetadataFileinfoName=dengchao.mp4CreatedTime=201505031232Size=2044323dengchao.mp4的信息的Metadata:描述“其他數(shù)據(jù)”而Metadata

常常多于內(nèi)容的文件是分開 的呢?還是連續(xù)呢?,Windows就是連續(xù)

Linux就是分開(畫個圖)第24頁How

to

save

a

file

in

one

machineDiskMetadataFileinfoName=dengchao.mp4CreatedTime=201505031232Size=2044323IndexBlock

11->diskOffset1Block

12->diskOffset2Block

13->diskOffset3Block

14->diskOffset4blocksBlock

10Block

11Block

12Block

13Block14Key

point1

block

=

1024ByteBlock

Advantage?方便檢查錯誤碎片化(fragmentation)第25頁Interviewer:

How

to

save

a

largefilein

one

machine?第26頁Is

block

size

bigenough?100T(多文件)=100*1000G=100*1000*1000M=100*1000*1000*1000K=100*1000*1000*1000block通常大文件是一些數(shù)據(jù)文件file-merged.txt=

0.3G的第27頁Interviewer:

How

to

save

a

large

file

in

one

machine?DiskMetadataFileinfoName=dengchao.mp4CreatedTime=201505031232Size=2044323232IndexChunk

11->diskOffset1Chunk

12->diskOffset2Chunk

13->diskOffset3…..chunksChunk

10Chunk

11Chunk

12Chunk

15Chunk

13Key

point1

chunk=

64M=

64*1024KAdvantageReduce

size

of

metadataDisadvantageWaste

space

for

small

files第28頁系統(tǒng)設計沒有標準答案就是TradeOff的過程第29頁Interviewer:

How

to

save

extra-large

filein

several

machine?第30頁10PIs

one

machine

bigenough?這里的文件并不是指一個dengchao.mp4就那么大而是很多個文件Scale

about

the

StorageChunkServer5Offset1Offset2Offset3

Dengchao.mp4-chunk-01Offset4

Dengchao.mp4-chunk-02Offset5

Dengchao.mp4-chunk-03Offset6

Sunli.mp4-chunk-01Offset6

Sunli.mp4-chunk-02MasterMeta

DataName=dengchao.mp4CreatedTime=201505031232Size=40042044323IndexChunk

01->cs5_offset3Chunk

02->cs5_offset4Chunk

03->cs5_offset5Chunk

04->cs3_offset1Chunk

05->cs3_offset2Chunk

06->cs3_offset3Key

pointOne

master

+

many

ChunkServers第31頁Chunk

Servers

=

Slave

Servers每個chunk的Offset偏移量可不可以不存在master上面?第32頁Scale

about

the

StorageChunkServer5Offset1Offset2Offset3

Dengchao.mp4-chunk-01Offset4

Dengchao.mp4-chunk-02Offset5

Dengchao.mp4-chunk-03Offset6Sunli.mp4-chunk-01Offset6

Sunli.mp4-chunk-02MasterMeta

DataName=dengchao.mp4CreatedTime=201505031232Size=40042044323IndexChunk

01->cs5Chunk

02->cs5Chunk

03->cs5Chunk

04->cs3Chunk

05->cs3Chunk

06->cs3Key

pointThe

master

don’t

record

thediskOffset

of

a

chunk第33頁AdvantageReduce

the

size

of

metadatainmasterReduce

the

traffic

between

masterandChunkServer(chunkoffset改變不需要通知master)IndexDengchao.mp4-chunk-01

Offset3Dengchao.mp4-chunk-02offset5Master10P

文件的metadata需要多少容量?1

chunk=64MB

needs

64B.(經(jīng)驗值)10P=16*10^6

chunk

needs

10

G第34頁按照4S分析Scenario

場景分析Service

服務Storage理清楚work

solutionScale升級優(yōu)化Overview第35頁One

Work

Solution

forRead

/

Write第36頁Interviewer:

How

to

write

a

file?第37頁一次寫入還是拆分成多份多次寫入?把大胖子直接寫入呢?還是把大胖子碎尸萬段了后寫入呢?write

File_name=/gfs/home/dengchao.mp4Server第38頁寫入過程中出錯了,那么需要重新寫入,哪

法更好?一次傳輸?shù)弥匦聜鬏斦麄€文件,多次只用重新傳一小份。如果是分成多份多次寫入,那么每一份的大?。课募緛硎前凑誄hunk來 的,所以傳輸單位也是Chunk如果是分成多份多次寫入,那么是告訴master讓master來切分?還是client自己切分?client自己按照文件大小切分。比如/gfs/home/dengchao.mp4

size=576M.

那么可以切分問576M/64M=9個chunk。一次

VS

多次第39頁How

to

write

a

file?FileClient

Split

file/gfs/home/dengchao.mp4Index00/gfs/home/dengchao.mp4-00-of-09Index01/gfs/home/dengchao.mp4-01-of-09……client

把文件拆分為n份,每一份一個chunk

index所以并不是一下就把胖子寫進去第40頁/gfs/home/dengchao.mp4那每一個chunk是怎么寫入server的呢?第41頁直接寫到chunk

server?需要先個master溝通,再寫入chunk

server?How

to

write

a

file?1,

write

File_name=/gfs/home/dengchao.mp4,

Chunk

index=12,

Assign

Chunkserver_locations=US,

CS13.

Transfer

Data=/gfs/home/dengchao.mp4-01-of-094.

WriteFinishmasterChunkServer1ChunkServer2infoName=/gfs/home/dengchao.mp4IndexChunk

01->ChunkServer1Chunk

02->ChunkServer1Chunk

03->ChunkServer2……KeyMaster

分配chunkserver給client的每個chunk4.

WriteFinish第42頁這個地方的client是User么?是

Drive界面么?第43頁How

to

write

a

file?ClientServerUserBrowserBroswerWebserverWebserverDatabaseDatabaseGFSWebserverGFS( File

System)第44頁要修改Dengchao.mp4怎么辦?第45頁/gfs/home/dengchao.mp4要修改的部分在哪個chunk?修改了過后chunk變大了要怎么處理?修改了過后chunk變小了要怎么處理?要修改Dengchao.mp4怎么辦?第46頁One

time

to

write,

Many

time

to

read.先刪掉/gfs/home/dengchao.mp4重新把整個文件重寫一份跟化妝一樣,畫丑了,洗掉重畫Interviewer:

How

to

read

a

file?第47頁一次讀整個文件?還是拆分成多份多次讀入?Read

File_name=/gfs/home/dengchao.mp4Server第48頁那么client怎么知道dengchao.mp4被切成了多少塊?How

to

read

from

a

file?1.

Filename=/gfs/home/dengchao.mp42.

return

a

chunk

list.Read

/gfs/home/dengchao.mp4-00-of-09

inChunk

server

1Return

data/gfs/home/dengchao.mp4-00-of-09masterChunkserver1第50頁Name=/gfs/home/dengchao

mp4Chunk

ListChunk

indexChunk

Server001012……各個文件數(shù)據(jù)的metadataMap(file

name

+

chunk

index

->

chunk

server)時找到對應的chunkserver寫入時分配空閑的chunkserverQuestion?為什么不把數(shù)據(jù)直接給master

讓master

去寫?MasterbottleneckMaster

Task第51頁?普通文件系統(tǒng)Meta

Data,Block大文件 :

Block->

Chunk多臺機器超大文件:Chunk

Server+Master寫入Master+Client+ChunkServer

溝通流程Master metadata

和chunkserver

表讀出Master+Client+ChunkServer

溝通流程One

Work

Solution第52頁按照4S分析Scenario

場景分析Service

服務Storage理清楚work

solutionScale升級優(yōu)化Overview第53頁休息5分鐘第54頁Scale

升級系統(tǒng)如何優(yōu)化與GFS的精髓第55頁單Master

夠不夠?第56頁單Master

夠不夠?第57頁工業(yè)界90%的系統(tǒng)都采用單masterSimple

is

perfectSingle

Master

FailureDouble

Master

雙龍戲珠P r:

Apache

Hadoop

Goes

Realtime

atMulti

MasterP r:

Paxos

Algorithm第58頁Scale

about

the

FailureandRecover第59頁Interviewer:

How

to

identify

whethera

chunk

on

the

disk

is

broken?第60頁CheckSum第61頁數(shù)據(jù)123Checksum(xor)二進制表示01101100Check

Sum

檢查一位錯誤數(shù)據(jù)133Checksum(xor)二進制表示01111101錯誤后原來CheckSum

Method

(MD5,

SHA1,

SHA256

and

SHA512)Read

More:第62頁Add

checksum

for

chunk?第63頁ChunkHow

to

identify

whether

a

chunk

on

the

disk

is

broken?第64頁1

checksumsize?4bytes

=

32bit1

chunk=

64MBEach

chunkhas

achecksumThe

size

of

checksum

of

1P

file1P/64MB*32bit

=

62.5

MB什么時候寫入checksum?第65頁什么時候寫入checksum?Answer:寫入一塊chunk的時候順便寫入第66頁Chunkchecksum什么時候檢查checksum?第67頁什么時候檢查checksum?第68頁Answer:讀入這一塊數(shù)據(jù)的時候檢查重新讀數(shù)據(jù)并且計算現(xiàn)在的checksum比較現(xiàn)在的checksum和之前存的checksum是否一樣Interviewer:

How

to

avoid

chunkdata

loss

when

a

ChunkServer

isdown/fail?第69頁Interviewer:

How

to

avoid

data

losswhen

a

ChunkServer

is

down/fail?第70頁Answer:Replica

(專業(yè)詞匯)說得好聽叫做雙保險需要多少個備份?每個備份放在哪?第71頁需要多少個備份?每個備份放在哪?第72頁三個備份都放在一個地方(加州)。三個備份放在三個相隔較遠的地方(加州,濱州,紐約州)兩個備份相對比較近,另一個放在較遠的地方(2個加州,1個濱州)選chunk

server的時候有什么策略?第73頁選chunk

server的時候有什么策略?最近寫入比較少的。(LRU)硬盤

比較低的。第74頁Interviewer:

How

to

recover

when

achunk

isbroken?第75頁Interviewer:

How

to

recover

when

achunk

isbroken?Answer:

Ask

master

for

help第76頁Master/gfs/home/dengchao.mp4Chunk03

->CS3,CS5,CS4ChuckServer5Dengchao.mp4-chunk-03ChuckServer4Dengchao.mp4-chunk-03Sunli.mp4-chunk-01Sunli.mp4-chunk-02Key

pointAsk

master

for

helpMy

Chunk03

is

wrong,

where

are

theothersAsk

CS3

and

CS5

?3.

I

need

Chunk3第77頁4.

There

u

goHow

to

find

whether

aChunkServer

is

down?第78頁How

to

find

whether

aChunkServer

is

down?第79頁Interviewer:

HeartBeat.畫一個圖闡釋A:

master

->

chunkservers?B:

chunkservers->master?備胎?Scale

abouttheWriteInterviewer: Whether

write

to

only

one

server

is

safe?第80頁How

to

write

a

file?1,

write

File_name=/gfs/home/dengchao.mp4,

Chunkindex=12,

Assign

Chunkserver_server,

CS1,CS2,CS34.

WriteFinishmasterChunkServer1ChunkServer2ChunkServer3第81頁Interviewer:

How

to

solve

Clientbottleneck?第82頁第83頁How

to

solve

Client

bottleneck?1,

write

File_name=/gfs/home/dengchao.mp4,

Chunkindex=12,

Assign

Chunkserver_server,

CS1,CS2,CS33.

Transfer

Data=/gfs/home/dengchao.mp4-01-094.

WriteFinimasterChunkServer1ChunkServer2ChunkServer33.

Transfer

Data=

/gfs/home/dengchao.mp4-01-of-09選隊長4.

Write本由

isomh社區(qū)用戶整理Interviewer:

怎么樣選隊長?第84頁找距離最近的(快)找現(xiàn)在不干活的(平衡traffic)Interviewer:

隊長一直不變的么?第85頁Interviewer:

How

to

solveChunkServer

failure?第86頁How

to

solve

ChunkServer

failure?1,

File

Name,

Chunk

id2,

Chunkserver

locations

,

CS1,CS2,CS33.

data4.

failmasterChunkS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論