版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
唐卓博ust_tz@126.com湖南大學(xué)信息科學(xué)與工程學(xué)院2014年8月大數(shù)據(jù)及其并行編程模型概述唐卓博數(shù)據(jù)及其并行主要內(nèi)容一、大數(shù)據(jù)概述二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維三、MapReduce并行編程詳解2注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大李東升教授:“大數(shù)據(jù)時(shí)代的挑戰(zhàn)和探索”主要內(nèi)容一、大數(shù)據(jù)概述2注:本課件前30頁(yè)P(yáng)PT來(lái)源于互聯(lián)網(wǎng)應(yīng)用數(shù)據(jù)急劇增長(zhǎng)
互聯(lián)網(wǎng)用戶數(shù)量巨大,日益活躍
?
微博、論壇、電子商務(wù)網(wǎng)站等
?
互聯(lián)網(wǎng)上的用戶生成數(shù)據(jù)(User
Generated
Content,
UGC)淘寶網(wǎng)每天新增數(shù)據(jù)40TB以上百度每天處理10PB量級(jí)的數(shù)據(jù),總數(shù)據(jù)量達(dá)1000PB應(yīng)用背景注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大李東升教授:“大數(shù)據(jù)時(shí)代的挑戰(zhàn)和探索”應(yīng)用背景注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大一、大數(shù)據(jù)概述?
隨著信息化的推進(jìn),國(guó)民經(jīng)濟(jì)、國(guó)家安全
等領(lǐng)域的數(shù)據(jù)不斷增長(zhǎng)
物聯(lián)網(wǎng)、移動(dòng)通信電話、手機(jī)短信、語(yǔ)音數(shù)據(jù)
遙感、公共安全、醫(yī)療、交通、情報(bào)等很多領(lǐng)域
?
高分辨率衛(wèi)星(影像)、城市監(jiān)控?cái)z像頭(視頻)、…
?
據(jù)報(bào)道,武漢監(jiān)控?cái)z像頭已超過(guò)25萬(wàn)個(gè),如采用1080P高清攝
像頭(一天產(chǎn)生數(shù)據(jù)量40GB以上),整個(gè)城市每天新增監(jiān)控
數(shù)據(jù)10PB以上應(yīng)用背景一、大數(shù)據(jù)概述?隨著信息化的推進(jìn),國(guó)民經(jīng)濟(jì)、國(guó)家安全應(yīng)用?
科學(xué)實(shí)驗(yàn)數(shù)據(jù)規(guī)模巨大,增長(zhǎng)迅猛生物工程氣候監(jiān)測(cè)高能物理天文觀測(cè)生態(tài)環(huán)境
….氣候研究華大基因測(cè)序目前每天產(chǎn)生數(shù)據(jù)約15TB,一年超過(guò)5PB
一歐洲CERN對(duì)撞機(jī)每年產(chǎn)生的數(shù)據(jù)量超過(guò)15
PB基因測(cè)序應(yīng)用背景氣候研究華大基因測(cè)序目歐洲CERN對(duì)撞基因測(cè)序應(yīng)用背景全球數(shù)據(jù)量?IDC報(bào)告預(yù)測(cè):未來(lái)
十年,全球數(shù)據(jù)量繼
續(xù)迅速增長(zhǎng)Amount
of
digital
informationcreated
and
replicated
in
a
year––––年均增長(zhǎng)率超過(guò)40%2009年0.8ZB2020年35ZB1ZB~106PB月球容量4GB的DVD光用容量4GB的DVD光盤(pán)存儲(chǔ),DVD可從地球排至月球G-T-P-E-Z-Y全球數(shù)據(jù)量?IDC報(bào)告預(yù)測(cè):未來(lái)Amounto?
維基(Wiki)百科的定義
Big
data
is
a
collection
of
data
sets
so
large
and
complex
that
it
becomes
difficult
to
process
using
on-hand
database
management
tools
?
IDC的定義
Big
data
technologies
describe
a
new
generation
of
technologies
and
architectures,
designed
to
economically
extract
value
from
very
large
volumes
of
a
wide
variety
of
data,
by
enabling
high-velocity
capture,
discovery,
and/or
analysis.
什么是大數(shù)據(jù)大數(shù)據(jù)是超大、復(fù)雜的數(shù)據(jù)集,現(xiàn)有的數(shù)據(jù)庫(kù)管理技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)技術(shù)描述了新一代的技術(shù)和架構(gòu),通過(guò)高速的數(shù)據(jù)獲取、發(fā)現(xiàn)和分析技術(shù),以經(jīng)濟(jì)的方式從各種超大規(guī)模的數(shù)據(jù)中提取價(jià)值什么是大數(shù)據(jù)大數(shù)據(jù)是超大、復(fù)雜的數(shù)據(jù)集,現(xiàn)有的數(shù)據(jù)庫(kù)管理技術(shù)一、大數(shù)據(jù)概述?
Volume:規(guī)模大
從PB級(jí)到ZB級(jí)
1
ZB
~
106*
PB?
Variety:多樣化
結(jié)構(gòu)化、非結(jié)構(gòu)化
文本、圖像、視頻等?
Velocity:變化快
批處理/離線數(shù)據(jù)、流/實(shí)時(shí)/在線數(shù)據(jù)等?
Value/
Veracity:價(jià)值稀疏
/數(shù)據(jù)質(zhì)量
噪音和無(wú)用信息很多一、大數(shù)據(jù)概述大數(shù)據(jù)的特點(diǎn)一、大數(shù)據(jù)概述?Volume:規(guī)模大一、大數(shù)據(jù)概述大數(shù)?
大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重
要影響
–
互聯(lián)網(wǎng)產(chǎn)業(yè)、電子商務(wù)推薦、日常生活
大數(shù)據(jù)的影響季節(jié)性流感是一個(gè)重要的公共衛(wèi)生問(wèn)題:WHO估計(jì),全球每年25萬(wàn)至50萬(wàn)人因此死亡及時(shí)監(jiān)測(cè)到疾病的傳播情況,盡快采取應(yīng)對(duì)措施2008年,Google通過(guò)處理網(wǎng)絡(luò)搜索日志中的幾千億查詢數(shù)據(jù),訓(xùn)練建立流感疾病監(jiān)測(cè)的數(shù)學(xué)模型,比美國(guó)病控制和預(yù)防中心提前1-2周給出流感的傳播情況論文發(fā)表在Nature(2009.2):DetectingInfluenza
EpidemicsusingSearchEngineQueryData?大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重大數(shù)據(jù)的影響季節(jié)性?
大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重
要影響
–
科學(xué)研究
三種科研模式:理論、實(shí)驗(yàn)、計(jì)算第四模式:數(shù)據(jù)密集型的科學(xué)發(fā)現(xiàn)圖靈獎(jiǎng)獲得者JimGray2007年提出專(zhuān)輯:Nature(2008.9):”Big
Data”,Science(2011.2):”Dealing
with
data”大數(shù)據(jù)的影響?大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重三種科研模式:理論?
2012年3月29日,美國(guó)政府宣布投資2億
美元啟動(dòng)“大數(shù)據(jù)研發(fā)計(jì)劃”(
Big
Data
R&D
Initiative
)
美NSF、國(guó)防部、能源部、衛(wèi)生總署等七部委?
我國(guó)科技部和基金委等部門(mén)高度重視
2013年973新立項(xiàng)項(xiàng)目:2項(xiàng)
“十二五”
國(guó)家科技計(jì)劃信息技術(shù)領(lǐng)域2013年度備選項(xiàng)
目征集指南?
國(guó)內(nèi)外學(xué)術(shù)界的熱點(diǎn)課題
SIGMOD、
VLDB、OSDI、NSDI等著名會(huì)議
Nature、Science雜志11大數(shù)據(jù)成為熱點(diǎn)課題?2012年3月29日,美國(guó)政府宣布投資2億11大數(shù)據(jù)?
傳統(tǒng)技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)的規(guī)模
–
數(shù)據(jù)存儲(chǔ)及訪問(wèn)的挑戰(zhàn)當(dāng)前較快硬盤(pán)的傳輸速度6Gbps,線性掃描10PB數(shù)據(jù),需約19天而百度、Google等互聯(lián)網(wǎng)公司每天處理
的數(shù)據(jù)量超過(guò)10PB案例源于:北航/愛(ài)丁堡樊文飛教授
?
可擴(kuò)展是大規(guī)模分布式系統(tǒng)面臨的基礎(chǔ)性問(wèn)題
–Jim
Gray(圖靈獎(jiǎng)獲得者)將可擴(kuò)展問(wèn)題列為信
息技術(shù)領(lǐng)域需解決的16個(gè)長(zhǎng)遠(yuǎn)問(wèn)題之首Jim
Gray.
What
Next?
A
Few
Remaining
Problems
in
Information
Technology.
ACM
Turing
Award
Lecture
(1999).
Available
at
http:///enus/um/people/gray/talks/Gray_Turing_FCRC.ppt大數(shù)據(jù)帶來(lái)的挑戰(zhàn)(1)?傳統(tǒng)技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)的規(guī)模當(dāng)前較快硬盤(pán)的傳輸速度6?
很多大數(shù)據(jù)應(yīng)用對(duì)響應(yīng)時(shí)間要求高
–
規(guī)模大、響應(yīng)快:對(duì)存儲(chǔ)和處理提出了很大挑戰(zhàn)
–2007年前,Facebook使用數(shù)據(jù)庫(kù),總數(shù)據(jù)量15TB
?
目前,F(xiàn)acebook每天新增加的數(shù)據(jù)約70TB
–
傳統(tǒng)并行數(shù)據(jù)庫(kù)擴(kuò)展性受限,節(jié)點(diǎn)規(guī)模很少超過(guò)100,
且價(jià)格昂貴
?2011年,F(xiàn)acebook系統(tǒng)具有2700多個(gè)節(jié)點(diǎn),Google單個(gè)數(shù)據(jù)中心在上
萬(wàn)個(gè)節(jié)點(diǎn)集群上存儲(chǔ)了約10PB數(shù)據(jù)?
如何設(shè)計(jì)可擴(kuò)展、低成本、快速響應(yīng)的大
數(shù)據(jù)存儲(chǔ)和處理系統(tǒng)?大數(shù)據(jù)存儲(chǔ)與處理的可擴(kuò)展難題大數(shù)據(jù)存儲(chǔ)與處理的可擴(kuò)展難題數(shù)據(jù)種類(lèi)多,需求多樣,關(guān)聯(lián)復(fù)雜
–文本、圖像、圖形、視頻等
–在線/流數(shù)據(jù)、離線/批處理等如何建模、存儲(chǔ)、查詢、分析和理解多樣
化的復(fù)雜數(shù)據(jù),挖掘數(shù)據(jù)價(jià)值?
–
大數(shù)據(jù)中垃圾和珍寶并存
–大海撈針、去粗取精、去偽存真
–需要計(jì)算機(jī)專(zhuān)家和領(lǐng)域?qū)<业呐浜稀?大數(shù)據(jù)面臨的挑戰(zhàn)(2)數(shù)據(jù)種類(lèi)多,需求多樣,關(guān)聯(lián)復(fù)雜大數(shù)據(jù)面臨的挑戰(zhàn)(2)傳統(tǒng)算法在大數(shù)據(jù)時(shí)代可能不再有效
多項(xiàng)式時(shí)間算法O(Nk),N太大
需要計(jì)算復(fù)雜性和算法設(shè)計(jì)理論上的變革
需要大數(shù)據(jù)計(jì)算思維上的變化
例如,從確定性計(jì)算到非精確性計(jì)算
商品在線推薦:只需要計(jì)算出前10名相關(guān)的結(jié)果,有
一點(diǎn)不準(zhǔn)確也沒(méi)有關(guān)系傳統(tǒng)算法結(jié)論在大數(shù)據(jù)時(shí)代需要重新評(píng)估
–
簡(jiǎn)單方法+大數(shù)據(jù)集可能取得很好的結(jié)果大數(shù)據(jù)面臨的挑戰(zhàn)(3)傳統(tǒng)算法在大數(shù)據(jù)時(shí)代可能不再有效大數(shù)據(jù)面臨的挑戰(zhàn)(3)?
2007年,Google公司的Brants等人研究了機(jī)
器翻譯領(lǐng)域中基于單詞訓(xùn)練數(shù)據(jù)集的語(yǔ)言
模型
比較了當(dāng)時(shí)最先進(jìn)的KN算法
與其提出的一個(gè)簡(jiǎn)單算法SB
研究表明,簡(jiǎn)單算法在小數(shù)
據(jù)集時(shí)效果不佳,但在大數(shù)
據(jù)集時(shí),簡(jiǎn)單算法卻產(chǎn)生了
更好的效果
T.Brants,A.C.Popat,etal.LargeLanguageModelsinMachineTranslation.
ProceedingsoftheJointConferenceonEmpiricalMethodsinNatural
LanguageProcessingandComputationalNaturalLanguageLearning,2007.16傳統(tǒng)算法結(jié)論需要重新評(píng)估?2007年,Google公司的Brants等人研究?
大數(shù)據(jù)時(shí)代的算法新理論
–
新的計(jì)算復(fù)雜性和算法設(shè)計(jì)理論?
復(fù)雜大數(shù)據(jù)的建模、表示和可視化
–
多源異構(gòu)大數(shù)據(jù):由大到小?
面向大數(shù)據(jù)的新型存儲(chǔ)和計(jì)算系統(tǒng)架構(gòu)
–大規(guī)模并行/分布處理?
大數(shù)據(jù)(并行)挖掘算法及應(yīng)用大數(shù)據(jù)的研究課題?大數(shù)據(jù)時(shí)代的算法新理論大數(shù)據(jù)的研究課題主要內(nèi)容一、大數(shù)據(jù)概述二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維三、MapReduce并行編程詳解2主要內(nèi)容一、大數(shù)據(jù)概述2181.
數(shù)據(jù)為中心的計(jì)算架構(gòu)計(jì)算和存儲(chǔ)唇齒相依2.化繁為簡(jiǎn),分而治之
可擴(kuò)展的數(shù)據(jù)并行處理3.求同存異,聚焦領(lǐng)域放松傳統(tǒng)數(shù)據(jù)處理技術(shù)的約束,如一致性等、行式存儲(chǔ)-列式存儲(chǔ)高可擴(kuò)展高吞吐率高可靠性……主要內(nèi)容18二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維181.數(shù)據(jù)為中心的計(jì)算架構(gòu)高可擴(kuò)展主要內(nèi)容18二、應(yīng)對(duì)大1.
數(shù)據(jù)為中心的計(jì)算架構(gòu)過(guò)去20年來(lái),計(jì)算器件的帶寬提升了100–2000倍,而延遲改善只有5-20倍CPU
和
on-chip
L2之間:
帶寬:增長(zhǎng)了2250倍
延遲:降低了20倍L3
cache
和DRAM之間:
帶寬:增長(zhǎng)了125倍
延遲:降低了4倍DRAM
和disk之間:
帶寬:增長(zhǎng)了150倍
延遲:降低了8倍
LAN連接的兩個(gè)節(jié)點(diǎn)之間
:
帶寬:增長(zhǎng)了100倍
延遲:降低了15倍充分利用數(shù)據(jù)和存儲(chǔ)的局部性(緩存、復(fù)制、預(yù)取)延遲提升滯后于帶寬Source:CACM(Patterson)1.數(shù)據(jù)為中心的計(jì)算架構(gòu)過(guò)去20年來(lái),計(jì)算器件的帶寬充分二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維1.
數(shù)據(jù)為中心的計(jì)算架構(gòu)(續(xù))20二、應(yīng)對(duì)大數(shù)據(jù)的計(jì)算思維
–
數(shù)據(jù)分布存儲(chǔ)在計(jì)算附近?–
計(jì)算盡量利用數(shù)據(jù)局部性–
存儲(chǔ)架構(gòu)、互連網(wǎng)絡(luò)架構(gòu)數(shù)據(jù)密集型計(jì)算計(jì)算密集型計(jì)算
SystemData–
數(shù)據(jù)存儲(chǔ)與計(jì)算相分離–
計(jì)算之前加載數(shù)據(jù)–
規(guī)模挑戰(zhàn):元數(shù)據(jù)管理+數(shù)
據(jù)傳輸二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維1.數(shù)據(jù)為中心的計(jì)算架構(gòu)(續(xù))20221.
數(shù)據(jù)為中心的計(jì)算架構(gòu)(續(xù))案例:MicrosoftFlatDatacenterStorage(OSDI2012)MinuteSort新架構(gòu)+高效互連網(wǎng)絡(luò)221.數(shù)據(jù)為中心的計(jì)算架構(gòu)(續(xù))案例:Microsoft?
簡(jiǎn)化的可擴(kuò)展數(shù)據(jù)并行處理:MapReduce框架Map:
Key1/Value1
(輸入數(shù)據(jù))Reduce:
Key2/Value2
(中間數(shù)據(jù))Key2/Value2
(中間數(shù)據(jù))
Value
(輸出數(shù)據(jù))數(shù)據(jù)按照key進(jìn)行分區(qū):數(shù)據(jù)并行Google提出(OSDI’04)
中間數(shù)據(jù)輸出數(shù)據(jù)輸入數(shù)據(jù)222.
化繁為簡(jiǎn),分而治之Map:Key1/Value1(輸入數(shù)據(jù))Key2?
特點(diǎn)
每個(gè)Map/Reduce任務(wù)相對(duì)獨(dú)立,執(zhí)行的任務(wù)簡(jiǎn)單
簡(jiǎn)單,易于擴(kuò)展(應(yīng)用無(wú)需修改)、容錯(cuò)性好(復(fù)算)
缺點(diǎn):Map和Reduce階段之間需要大量的數(shù)據(jù)交換?
開(kāi)源實(shí)現(xiàn)
Hadoop及其變型
成功應(yīng)用于眾多著名公司
?
Facebook,
Yahoo!
,
AOL,
EBay,
IBM,
….
?
百度,阿里巴巴等MapReduce數(shù)據(jù)并行框架?特點(diǎn)MapReduce數(shù)據(jù)并行框架?
MapReduce
革新
MapReduce
Online
(UC
Berkeley)、
HadoopDB
(
(Yale)
)
Hadoop++
(Dittrich
et
al.:
VLDB’2012)
Spark(內(nèi)存Hadoop,
UCBerkeley)…?
新的數(shù)據(jù)并行處理框架
Pregel,GraphLab:
圖數(shù)據(jù)的并行處理框架
Dremel:
快速交互式數(shù)據(jù)分析系統(tǒng),PB/s
Storm:流處理數(shù)據(jù)框架
….學(xué)術(shù)界和工業(yè)界不懈努力?MapReduce革新學(xué)術(shù)界和工業(yè)界不懈努力數(shù)據(jù)一致性
關(guān)系數(shù)據(jù)庫(kù):強(qiáng)一致性Atomicity
Consistency
Isolation
Durability(
ACID)寫(xiě)操作完成后,任何后續(xù)讀操作將得到最新值?
分布式環(huán)境下,強(qiáng)一致性的代價(jià)昂貴,很
多應(yīng)用也無(wú)需強(qiáng)一致性弱化數(shù)據(jù)一致性,提升可擴(kuò)展性和可靠性3.
求同存異,聚焦領(lǐng)域數(shù)據(jù)一致性3.求同存異,聚焦領(lǐng)域Youcanhaveatmosttwoofthesepropertiesforanyshared-datasystem在分布式系統(tǒng)中,數(shù)據(jù)一致性、系統(tǒng)可用性、以及對(duì)網(wǎng)絡(luò)斷分容忍性中,任何時(shí)候只能實(shí)現(xiàn)其中兩個(gè)特性UC
Berkeley的Eric
Brewer提出猜想(2000)MIT的Nancy
Lynch等予以證明(2002)
CAP定理Youcanhaveatmosttwoof在分布
為什么犧牲數(shù)據(jù)一致性?
犧牲P、A對(duì)互聯(lián)網(wǎng)上的大數(shù)據(jù)
應(yīng)用來(lái)說(shuō)難以容忍犧牲C的代價(jià)可以接受應(yīng)用開(kāi)發(fā)稍顯復(fù)雜很多應(yīng)用并不關(guān)心C弱(最終)一致性Basically
Available
Soft-stateEventual
Consistency(Base)弱化數(shù)據(jù)一致性為什么犧牲數(shù)據(jù)一致性?犧牲C的代價(jià)可以接受弱化數(shù)據(jù)一致性?
聚焦領(lǐng)域應(yīng)用需求,簡(jiǎn)(優(yōu))化系統(tǒng)設(shè)計(jì)
GFS:聚焦于數(shù)據(jù)“讀多寫(xiě)少”場(chǎng)景
滿足可擴(kuò)展性、可用性等多種需求的平衡?
NoSQL
存儲(chǔ)
很多領(lǐng)域應(yīng)用只需要對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的讀寫(xiě)
?
不需要復(fù)雜的SQL操作,如skyline查詢、多表join等key/value存儲(chǔ)放棄SQL的某些要求列式存儲(chǔ)283.
求同存異,聚焦領(lǐng)域
全能選手
Vs.
特長(zhǎng)生?聚焦領(lǐng)域應(yīng)用需求,簡(jiǎn)(優(yōu))化系統(tǒng)設(shè)計(jì)key/value
大數(shù)據(jù)研究正方興未艾?
Gartner:Hype
Cycle
2012 大數(shù)據(jù)研究正方興未艾主要內(nèi)容一、大數(shù)據(jù)概述二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維三、MapReduce并行編程詳解2主要內(nèi)容一、大數(shù)據(jù)概述2MapReduce起源:Google搜索每一次搜索200+CPU200TB以上數(shù)據(jù)1010CPU周期0.1秒內(nèi)響應(yīng)5¢廣告收入MapReduce起源:Google搜索每一次搜索計(jì)算問(wèn)題簡(jiǎn)單,但求解困難待處理數(shù)據(jù)量巨大(PB級(jí)),只有分布在成百上千個(gè)節(jié)點(diǎn)上并行計(jì)算才能在可接受的時(shí)間內(nèi)完成如何進(jìn)行并行分布式計(jì)算?如何分發(fā)待處理數(shù)據(jù)?如何處理分布式計(jì)算中的錯(cuò)誤?簡(jiǎn)單的問(wèn)題,計(jì)算并不簡(jiǎn)單!計(jì)算問(wèn)題簡(jiǎn)單,但求解困難簡(jiǎn)單的問(wèn)題,計(jì)算并不簡(jiǎn)單!MapReduce:大規(guī)模數(shù)據(jù)處理處理海量數(shù)據(jù)(>1TB)上百/上千CPU實(shí)現(xiàn)并行處理簡(jiǎn)單地實(shí)現(xiàn)以上目的"GoogleEarthuses70.5TB:70TBfortherawimageryand500GBfortheindexdata."From:/2006/09/how-much-data-does-google-store.html分而治之DivideandConquer
GoogleMapReduce架構(gòu)設(shè)計(jì)師JeffreyDeanMapReduce:大規(guī)模數(shù)據(jù)處理處理海量數(shù)據(jù)(>1TB)"MapReduce特性自動(dòng)實(shí)現(xiàn)分布式并行計(jì)算容錯(cuò)提供狀態(tài)監(jiān)控工具模型抽象簡(jiǎn)潔,程序員易用MapReduce特性自動(dòng)實(shí)現(xiàn)分布式并行計(jì)算MapReduce特性MapReduce程序是設(shè)計(jì)用來(lái)并行計(jì)算大規(guī)模海量數(shù)據(jù)的,這需要把工作流分劃到大量的機(jī)器上去,如果組件(component)之間可以任意的共享數(shù)據(jù),那這個(gè)模型就無(wú)法擴(kuò)展到大規(guī)模集群上去(數(shù)百或數(shù)千個(gè)節(jié)點(diǎn)),用來(lái)保持節(jié)點(diǎn)間數(shù)據(jù)的同步而產(chǎn)生的通信開(kāi)銷(xiāo)會(huì)使得系統(tǒng)在大規(guī)模集群上變得不可靠和效率低下所有在MapReduce上的數(shù)據(jù)元素都是不可變的,這就意味著它們不能夠被更新。如果在一個(gè)mapping任務(wù)中你改變了一個(gè)輸入鍵值對(duì),它并不會(huì)反饋到輸入文件;節(jié)點(diǎn)間的通信只在產(chǎn)生新的輸出鍵值對(duì)((key,value)pairs)時(shí)發(fā)生,Hadoop系統(tǒng)會(huì)把這些輸出傳到下一個(gè)執(zhí)行階段。MapReduce特性MapReduce程序是設(shè)計(jì)用來(lái)并行計(jì)MapReducemapping和reducing函數(shù)接收數(shù)值(鍵,值)對(duì)mapper可能把一個(gè)輸入map為0個(gè),1個(gè)或100個(gè)輸出reducer可能計(jì)算超過(guò)一個(gè)的輸入列表并生成一個(gè)或多個(gè)不同的輸出MapReducemapping和reducing函數(shù)接收數(shù)MapReduce編程模型用戶只需要實(shí)現(xiàn)兩個(gè)函數(shù)接口:map(in_key,in_value)-> (out_key,intermediate_valuelist)reduce(out_key,intermediate_valuelist)->out_valuelist輸入的key和value的類(lèi)型和輸出的類(lèi)型可以是不同的MapReduce編程模型用戶只需要實(shí)現(xiàn)兩個(gè)函數(shù)接口:map將數(shù)據(jù)源中的記錄(文本中的行、數(shù)據(jù)庫(kù)中條目等)作為map函數(shù)中的key*value對(duì)例如(filename,line)map()將生成一個(gè)或多個(gè)中間結(jié)果,以及與input相對(duì)應(yīng)的一個(gè)outputkeymap將數(shù)據(jù)源中的記錄(文本中的行、數(shù)據(jù)庫(kù)中條目等)作為mareducemap操作結(jié)束后,所有與某指定outkey相對(duì)應(yīng)的中間結(jié)果組合為一個(gè)列表(list)。reduce()函數(shù)將這些中間結(jié)果組合為一個(gè)或多個(gè)對(duì)應(yīng)于同一outputkey的finalvalue每一個(gè)outputkey通常只有一個(gè)finalvaluereduce()個(gè)數(shù)可以為0個(gè)或多個(gè)reducemap操作結(jié)束后,所有與某指定outkey相對(duì)大數(shù)據(jù)及MapReduce編程模型課件任務(wù)執(zhí)行過(guò)程任務(wù)執(zhí)行過(guò)程源文件:GFSMap處理結(jié)果:本地存儲(chǔ)Reduce處理結(jié)果:GFS日志:GFS文件存儲(chǔ)位置源文件:GFS文件存儲(chǔ)位置Shuffle和Sort當(dāng)Map開(kāi)始產(chǎn)生輸出時(shí),并不是簡(jiǎn)單的把數(shù)據(jù)寫(xiě)到磁盤(pán),因?yàn)轭l繁的磁盤(pán)操作會(huì)導(dǎo)致性能?chē)?yán)重下降。它的處理過(guò)程更復(fù)雜,數(shù)據(jù)首先是寫(xiě)到內(nèi)存中的一個(gè)緩沖區(qū),并進(jìn)行預(yù)排序,以提升效率。Shuffle和Sort當(dāng)Map開(kāi)始產(chǎn)生輸出時(shí),并不是CombinerCombinerCombinerCombiner并行化map()函數(shù)可以并行執(zhí)行,為不同的輸入數(shù)據(jù)集生成不同的中間結(jié)果reduce()函數(shù)也可以并行執(zhí)行,分別處理不同的outputkeymap和reduce的處理過(guò)程中不發(fā)生通信瓶頸:只有當(dāng)map處理全部結(jié)束后,reduce過(guò)程才能夠開(kāi)始并行化map()函數(shù)可以并行執(zhí)行,為不同的輸入數(shù)據(jù)集生成不同MapReduce的并行執(zhí)行MapReduce的并行執(zhí)行Worker故障Master周期性的ping每個(gè)worker。如果master在一個(gè)確定的時(shí)間段內(nèi)沒(méi)有收到worker返回的信息,那么它將把這個(gè)worker標(biāo)記成失效重新執(zhí)行該節(jié)點(diǎn)上已經(jīng)執(zhí)行或尚未執(zhí)行的Map任務(wù)重新執(zhí)行該節(jié)點(diǎn)上未完成的Reduce任務(wù),已完成的不再執(zhí)行Master故障定期寫(xiě)入檢查點(diǎn)數(shù)據(jù)從檢查點(diǎn)恢復(fù)MapReduce的容錯(cuò)Worker故障MapReduce的容錯(cuò)任務(wù)備份機(jī)制慢的workers會(huì)嚴(yán)重地拖延整個(gè)執(zhí)行完成的時(shí)間由于其他的任務(wù)占用了資源磁盤(pán)損壞解決方案:推測(cè)性的執(zhí)行(Speculativeexecution)在即將完成時(shí),備份任務(wù)多個(gè)worker同時(shí)進(jìn)行相同的任務(wù)任何一個(gè)完成均可可以十分顯著地提高執(zhí)行效率MapReduce的優(yōu)化任務(wù)備份機(jī)制MapReduce的優(yōu)化本地處理Master調(diào)度策略:向GFS詢問(wèn)獲得輸入文件blocks副本的位置信息Maptasks的輸入數(shù)據(jù)通常按64MB來(lái)劃分(GFSblock大小)按照blocks所在的機(jī)器或機(jī)器所在機(jī)架的范圍進(jìn)行調(diào)度效果絕大部分機(jī)器從本地讀取文件作為輸入,節(jié)省大量帶寬MapReduce的優(yōu)化本地處理MapReduce的優(yōu)化跳過(guò)有問(wèn)題的記錄一些特定的輸入數(shù)據(jù)常導(dǎo)致Map/Reduce無(wú)法運(yùn)行調(diào)試或者修改在每個(gè)worker里運(yùn)行一個(gè)信號(hào)處理程序,捕獲map或reduce任務(wù)崩潰時(shí)發(fā)出的信號(hào),一旦捕獲,就會(huì)向master報(bào)告,同時(shí)報(bào)告輸入記錄的編號(hào)信息。如果master看到一條記錄有兩次崩潰信息,那么就會(huì)對(duì)該記錄進(jìn)行標(biāo)記,下次運(yùn)行的時(shí)候,跳過(guò)該記錄MapReduce的優(yōu)化跳過(guò)有問(wèn)題的記錄MapReduce的優(yōu)化MapReduce示例:?jiǎn)卧~計(jì)數(shù)案例:?jiǎn)卧~記數(shù)問(wèn)題(WordCount)給定一個(gè)巨大的文本(如1TB),如何計(jì)算單詞出現(xiàn)的數(shù)目?MapReduce示例:?jiǎn)卧~計(jì)數(shù)案例:?jiǎn)卧~記數(shù)問(wèn)題(WordMapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該問(wèn)題Step1:自動(dòng)對(duì)文本進(jìn)行分割MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該問(wèn)題Step2:在分割之后的每一對(duì)<key,value>進(jìn)行用戶定義的Map進(jìn)行處理,再生成新的<key,value>對(duì)MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該問(wèn)題Step3:對(duì)輸出的結(jié)果集歸攏(不同mapslot間copy到一起)、排序(sort)(系統(tǒng)自動(dòng)完成)MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該問(wèn)題Step4:通過(guò)Reduce操作生成最后結(jié)果MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該問(wèn)題定義Map和Reduce函數(shù)map(Stringinput_key,Stringinput_value)://input_key:documentname//input_value:documentcontents
foreachwordwininput_value:
EmitIntermediate(w,"1");reduce(Stringoutput_key,Iteratorintermediate_values)://output_key:aword//output_values:alistofcounts
intresult=0;
foreachvinintermediate_values:result+=ParseInt(v);
Emit(AsString(result));MapReduce示例:?jiǎn)卧~計(jì)數(shù)使用MapReduce求解該其他示例分布式檢索map函數(shù)挑選出滿足特定模式的行,并將其組裝成元組輸出。reduce函數(shù)是一個(gè)簡(jiǎn)單的確認(rèn)函數(shù),它完成的工作僅僅是將中間元組拷貝到輸出中。計(jì)算URL訪問(wèn)頻率map函數(shù)處理web網(wǎng)頁(yè)的訪問(wèn)日志,并輸出<URL,1>。reduce函數(shù)將每個(gè)URL的訪問(wèn)次數(shù)加起來(lái),輸出<URL,totalcount>其他示例分布式檢索其他示例翻轉(zhuǎn)web-link圖在每個(gè)作為源的頁(yè)面中,檢查其連接URL,并逐個(gè)輸出<target,source>元組。reduce函數(shù)將連接到每個(gè)target的所有source組合起來(lái),形成list列表,輸出<target,list(source)>每個(gè)站點(diǎn)的術(shù)語(yǔ)向量術(shù)語(yǔ)向量表示出在一篇文章中或者一組文章中最重要的單詞,通常以<word,frequency>元組的方式。map函數(shù)輸出每個(gè)文章的<hostname,termvector>(hostname通過(guò)文章的URL分析得到)。reduce函數(shù)取出不常用的術(shù)語(yǔ),將其余的相加,得到最終的<hostname,termvector>對(duì)其他示例翻轉(zhuǎn)web-link圖其他示例倒排索引map函數(shù)分析每個(gè)文檔,然后產(chǎn)生一個(gè)(詞,文檔號(hào))對(duì)的序列.reduce函數(shù)接受一個(gè)給定詞的所有對(duì),排序相應(yīng)的文檔IDs,并且產(chǎn)生一個(gè)(詞,文檔ID列表)對(duì).所有的輸出對(duì)集形成一個(gè)簡(jiǎn)單的倒排索引分布式排序map函數(shù)從每個(gè)記錄提取key,并且產(chǎn)生一個(gè)(key,record)對(duì).reduce函數(shù)不改變?nèi)魏蔚膶?duì).其他示例倒排索引“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”實(shí)踐證明,MapReduce是出色的分布式計(jì)算模型Google宣布,其對(duì)分布于1000臺(tái)計(jì)算機(jī)上的1TB數(shù)據(jù)進(jìn)行排序僅僅需要68s對(duì)4000臺(tái)計(jì)算機(jī)上的1PB數(shù)據(jù)進(jìn)行排序處理僅需要6小時(shí)2分鐘(每次測(cè)試至少會(huì)損壞1塊硬盤(pán))在08年1月份,GoogleMapReduce平均每天的數(shù)據(jù)處理量是20PB,相當(dāng)于美國(guó)國(guó)會(huì)圖書(shū)館當(dāng)年5月份存檔網(wǎng)絡(luò)數(shù)據(jù)的240倍“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”實(shí)踐證明,MapReduce是出Hadoop上的MapReducejob:是客戶端程序想要完成的一系列工作的集合。包括輸入數(shù)據(jù),MapReduce程序和配置信息。task:Hadoop將job分解為tasks有兩種類(lèi)型的task:maptask和reducetaskjobtracker和tasktracker:用來(lái)控制job執(zhí)行的tasktracker運(yùn)行task,并向jobtracker報(bào)告進(jìn)度信息jobtracker記錄下每一個(gè)job的進(jìn)度信息,如果一個(gè)task失敗,jobtracker會(huì)將其重新調(diào)度到另外的tasktracker上。Hadoop上的MapReducejob:是客戶端程序想要Hadoop-MapReduce工作原理Hadoop-MapReduce工作原理大數(shù)據(jù)及MapReduce編程模型課件HadoopStreamingandPipesHadoop流允許用Java以外的語(yǔ)言來(lái)編寫(xiě)Map和Reduce函數(shù)Hadoop管道C++接口HadoopStreamingandPipesHado流和管道及子進(jìn)程的關(guān)系流和管道及子進(jìn)程的關(guān)系進(jìn)度和狀態(tài)更新進(jìn)度和狀態(tài)更新Hadoop-MapReduceMapperpublicstaticclass**MapperextendsMapper<Object,Text,Text,IntWritable>Reducer
publicstaticclass**Reducerextendseducer<Text,IntWritable,Text,IntWritable>DriverPackage
org.apache.hadoop.mapreduce.Job; org.apache.hadoop.mapreduce.Mapper; org.apache.hadoop.mapreduce.Reducer;Hadoop-MapReduceMapper接口描述publicinterfaceMapper<K1,V1,K2,V2>extendsJobConfigurable,Closeable{voidmap(K1key,V1value,OutputCollector<K2,V2>output,Reporterreporter)throwsIOException;}publicinterfaceReducer<K2,V2,K3,V3>extendsJobConfigurable,Closeable{voidreduce(K2key,Iterator<V2>values,OutputCollector<K3,V3>output,Reporterreporter)throwsIOException;}接口描述publicinterfaceMapper<K1MapperpublicstaticclassMapextendsMapper<LongWritable,Text,Text,IntWritable>{privatefinalstaticIntWritableone=newIntWritable(1);privateTextword=newText();publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{Stringline=value.toString();StringTokenizertokenizer=newStringTokenizer(line);while(tokenizer.hasMoreTokens()){word.set(tokenizer.nextToken());context.write(word,one);}}}MapperpublicstaticclassMapReducerpublicstaticclassReduceextendsReducer<Text,IntWritable,Text,IntWritable>{publicvoidreduce(Textkey,Iterable<IntWritable>values,Contextcontext)throwsIOException,InterruptedException{intsum=0;for(IntWritableval:values){ sum+=val.get();}context.write(key,newIntWritable(sum));}}ReducerpublicstaticclassRedDriverpublicstaticvoidmain(String[]args)throwsException{Configurationconf=newConfiguration();Jobjob=newJob(conf,"wordcount");job.setJarByClass(WordCount.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);job.setMapperClass(Map.class);job.setReducerClass(Reduce.class);job.setInputFormatClass(TextInputFormat.class);job.setOutputFormatClass(TextOutputFormat.class);FileInputFormat.addInputPath(job,newPath(args[0]));FileOutputFormat.setOutputPath(job,newPath(args[1]));job.waitForCompletion(true);}Driverpublicstaticvoidmain(InputFiles輸入文件一般保存在HDFS中文件的類(lèi)型不固定,可能是文本的,也有可能是其它形式的文件文件經(jīng)常很大,甚至有幾十個(gè)GBInput會(huì)被分成inputsplit,split由record組成。map處理每一個(gè)record,并且返回key和value的對(duì)MapReduce程序并不需要直接處理InputSplit,由InputFormat創(chuàng)建的InputFiles輸入文件一般保存在HDFS中InputSplitsInputSplit定義了輸入到單個(gè)Map任務(wù)的輸入數(shù)據(jù)InputSplit將文件分為64MB的大小hadoop-site.xml中的mapred.min.split.size參數(shù)控制這個(gè)大小mapred.tasktracker.map.taks.maximum用來(lái)控制某一個(gè)節(jié)點(diǎn)上所有map任務(wù)的最大數(shù)目InputSplitsInputSplit定義了輸入到單個(gè)MRecordReaderInputSplit定義了一項(xiàng)工作的大小,但是沒(méi)有定義如何讀取數(shù)據(jù)RecordReader實(shí)際上定義了如何從數(shù)據(jù)上轉(zhuǎn)化為一個(gè)(key,value)對(duì),從而輸出到Mapper類(lèi)中TextInputFormat提供了LineRecordReaderRecordReaderInputSplit定義了一項(xiàng)工作的InputFormat定義了這些文件如何分割,讀取InputFile提供了以下一些功能選擇文件或者其它對(duì)象,用來(lái)作為輸入定義InputSplits,將一個(gè)文件分開(kāi)成為任務(wù)為RecordReader提供一個(gè)工廠,用來(lái)讀取這個(gè)文件有一個(gè)抽象的類(lèi)FileInputFormat,所有的輸入格式類(lèi)都從這個(gè)類(lèi)繼承這個(gè)類(lèi)的功能以及特性。當(dāng)啟動(dòng)一個(gè)Hadoop任務(wù)的時(shí)候,一個(gè)輸入文件所在的目錄被輸入到FileInputFormat對(duì)象中。FileInputFormat從這個(gè)目錄中讀取所有文件。然后FileInputFormat將這些文件分割為一個(gè)或者多個(gè)InputSplits。通過(guò)在JobConf對(duì)象上設(shè)置JobConf.setInputFormat設(shè)置文件輸入的格式InputFormat定義了這些文件如何分割,讀取預(yù)定義的文件輸入格式InputFormat:Description:Key:Value:TextInputFormatDefaultformat;readslinesoftextfilesThebyteoffsetofthelineThelinecontentsKeyValueInputFormatParseslinesintokey,valpairsEverythinguptothefirsttabcharacterTheremainderofthelineSequenceFileInputFormatAHadoop-specifichigh-performancebinaryformatuser-defineduser-defined預(yù)定義的文件輸入格式InputFormat:Descript各種InputFormatTextInputFormat,默認(rèn)的格式,每一行是一個(gè)單獨(dú)的記錄,并且作為value,文件的偏移值作為keyKeyValueInputFormat,這個(gè)格式每一行也是一個(gè)單獨(dú)的記錄,但是Key和Value用Tab隔開(kāi),是默認(rèn)的OutputFormat,可以作為中間結(jié)果,作為下一步MapReduce的輸入。SequenceFileInputFormat基于塊進(jìn)行壓縮的格式對(duì)于幾種類(lèi)型數(shù)據(jù)的序列化和反序列化操作用來(lái)將數(shù)據(jù)快速讀取到Mapper類(lèi)中各種InputFormatTextInputFormat,默Writable接口Hadoop使用Writable做序列化定義了兩個(gè)方法二進(jìn)制寫(xiě)入DataOutput流二進(jìn)制讀取DataInput流Hadoop自帶一系列Writable實(shí)現(xiàn),可以滿足絕大多數(shù)需要可以自定義Writable,控制二進(jìn)制表示和排序Writable接口Hadoop使用Writable做序列化實(shí)現(xiàn)Writable接口的例子public
class
MyWritable
implements
Writable
{
//
Some
data
private
int
counter;
private
long
timestamp;
public
void
write(DataOutput
out)
throws
IOException
{
out.writeInt(counter);
out.writeLong(timestamp);
}
public
void
readFields(DataInput
in)
throws
IOException
{
counter
=
in.readInt();
timestamp
=
in.readLong();
}
public
static
MyWritable
read(DataInput
in)
throws
IOException
{
MyWritable
w
=
new
MyWritable();
w.readFields(in);
return
w;
}
}
實(shí)現(xiàn)Writable接口的例子public
class
MyWritable的Java基本封裝Writable的Java基本封裝Mapper每一個(gè)Mapper類(lèi)的實(shí)例生成了一個(gè)Java進(jìn)程(在某一個(gè)InputSplit上執(zhí)行)有兩個(gè)額外的參數(shù)OutputCollector以及Reporter,前者用來(lái)收集中間結(jié)果,后者用來(lái)獲得環(huán)境參數(shù)以及設(shè)置當(dāng)前執(zhí)行的狀態(tài)?,F(xiàn)在用Mapper.Context提供給每一個(gè)Mapper函數(shù),用來(lái)提供上面兩個(gè)對(duì)象的功能數(shù)據(jù)壓縮Mapper每一個(gè)Mapper類(lèi)的實(shí)例生成了一個(gè)Java進(jìn)程Partition&Shuffle在Map工作完成之后,每一個(gè)Map函數(shù)會(huì)將結(jié)果傳到對(duì)應(yīng)的Reducer所在的節(jié)點(diǎn),此時(shí),用戶可以提供一個(gè)Partitioner類(lèi),用來(lái)決定一個(gè)給定的(key,value)對(duì)傳輸?shù)木唧w位置Partition&Shuffle在Map工作完成之后,每一Combinerconf.setCombinerClass(Reduce.class);是在本地執(zhí)行的一個(gè)Reducer,滿足一定的條件才能夠執(zhí)行。Combinerconf.setCombinerClass(Sort傳輸?shù)矫恳粋€(gè)節(jié)點(diǎn)上的所有的Reduce函數(shù)接收到得Key,value對(duì)會(huì)被Hadoop自動(dòng)排序(即Map生成的結(jié)果傳送到某一個(gè)節(jié)點(diǎn)的時(shí)候,會(huì)被自動(dòng)排序)Sort傳輸?shù)矫恳粋€(gè)節(jié)點(diǎn)上的所有的Reduce函數(shù)接收到得KReduce做用戶定義的Reduce操作接收到一個(gè)OutputCollector的類(lèi)作為輸出Reduce做用戶定義的Reduce操作OutputFormat寫(xiě)入到HDFS的所有OutputFormat都繼承自FileOutputFormat每一個(gè)Reducer都寫(xiě)一個(gè)文件到一個(gè)共同的輸出目錄,文件名是part-nnnnn,其中nnnnn是與每一個(gè)reducer相關(guān)的一個(gè)號(hào)(partitionid)JobConf.setOutputFormat()RecordWriter用來(lái)指導(dǎo)如何輸出一個(gè)記錄到文件中OutputFormat寫(xiě)入到HDFS的所有OutputFoOutputFormatOutputFormat:DescriptionTextOutputFormatDefault;writeslinesin"key\tvalue"formSequenceFileOutputFormatWritesbinaryfilessuitableforreadingintosubsequentMapReducejobsNullOutputFormatDisregardsitsinputsOutputFormatOutputFormat:Desc容錯(cuò)由Hadoop系統(tǒng)自己解決主要方法是將失敗的任務(wù)進(jìn)行再次執(zhí)行TaskTracker會(huì)把狀態(tài)信息匯報(bào)給JobTracker,最終由JobTracker決定重新執(zhí)行哪一個(gè)任務(wù)為了加快執(zhí)行的速度,Hadoop也會(huì)自動(dòng)重復(fù)執(zhí)行同一個(gè)任務(wù),以最先執(zhí)行成功的為準(zhǔn)mapred.map.tasks.speculative.executionmapred.reduce.tasks.speculative.execution容錯(cuò)由Hadoop系統(tǒng)自己解決調(diào)優(yōu)部分屬性除了配置文件之外還可以在MapReduce作業(yè)中動(dòng)態(tài)修改在MapReduce執(zhí)行過(guò)程中,特別是Shuffle階段,盡量使用內(nèi)存緩沖區(qū)存儲(chǔ)數(shù)據(jù),減少磁盤(pán)溢寫(xiě)次數(shù);同時(shí)在作業(yè)執(zhí)行過(guò)程中增加并行度,都能夠顯著提高系統(tǒng)性能,這也是配置優(yōu)化的一個(gè)重要依據(jù)。由于每個(gè)Hadoop集群的機(jī)器和硬件之間都存在一定差別,所以Hadoop框架應(yīng)根據(jù)其集群特性做配置優(yōu)化調(diào)優(yōu)部分屬性除了配置文件之外還可以在MapReduce作業(yè)中IO屬性優(yōu)化主要包括在Shuffle階段中相關(guān)的I/O過(guò)程的屬性io.sort.factor屬性int類(lèi)型,Map端和Reduce端使用
該屬性設(shè)置在Map端和Reduce端都使用到的對(duì)文件Sort時(shí)一次合并的最大流,其默認(rèn)值是10,即一次合并10個(gè)流。在集群中,將其適當(dāng)增大能夠提高并行度以縮短合并所需時(shí)間。將此默認(rèn)值增加到100是比較常見(jiàn)的。io.sort.mb屬性int類(lèi)型,Map端使用,Map輸出進(jìn)行排序時(shí)使用的環(huán)形內(nèi)存緩沖區(qū)的大小,以M字節(jié)為單位,默認(rèn)是100M。如果允許,應(yīng)該增加它的值來(lái)減少磁盤(pán)溢寫(xiě)的次數(shù)以提高性能。io.sort.record.percent屬性float類(lèi)型,Map端使用,設(shè)置保留的io.sort.mb的比例用來(lái)存儲(chǔ)Map輸出的記錄邊界,剩余的空間用來(lái)存儲(chǔ)Map輸出記錄本身,默認(rèn)是0.05IO屬性優(yōu)化主要包括在Shuffle階段中相關(guān)的I/O過(guò)程的IO屬性優(yōu)化io.sort.spill.percent屬性float類(lèi)型,Map端使用,設(shè)置Map輸出內(nèi)存緩沖和邊界記錄索引兩者使用比例的閾值,達(dá)到此值后開(kāi)始溢寫(xiě)磁盤(pán)的過(guò)程,默認(rèn)是0.80io.file.buffer.size屬性int類(lèi)型,MapReduce作業(yè)使用,設(shè)置MapReduce作業(yè)的I/O操作中所提供的緩沖區(qū)的大小,以字節(jié)為單位,默認(rèn)是4096字節(jié)。這是一個(gè)比較保守的設(shè)置,通過(guò)增大它的大小能夠減少I(mǎi)/O次數(shù)以提高性能。如果系統(tǒng)允許,64KB(65536字節(jié))至128KB(131072字節(jié))是較普遍的選擇。mapred.job.shuffle.input.buffer.percent屬性float類(lèi)型,Reduce端使用,該屬性設(shè)置整個(gè)堆空間的百分比,用于Shuffle的復(fù)制階段分配給Map輸出緩存,默認(rèn)是0.70,適當(dāng)增大比例可以使Map輸出不被溢寫(xiě)到磁盤(pán),能夠提高系統(tǒng)性能。mapred.job.shuffle.merge.percent屬性float類(lèi)型,Reduce端使用,該屬性設(shè)置Map輸出緩存中使用比例的閾值,用于啟動(dòng)合并輸出和磁盤(pán)溢寫(xiě)的過(guò)程,默認(rèn)是0.66。如果允許,適當(dāng)增大其比例能夠減少磁盤(pán)溢寫(xiě)次數(shù),提高系統(tǒng)性能IO屬性優(yōu)化io.sort.spill.percent屬性Job提交方法submit()submit函數(shù)會(huì)把Job提交給對(duì)應(yīng)的Cluster,不等待Job執(zhí)行結(jié)束立刻返回。把Job實(shí)例的狀態(tài)設(shè)置為JobState.RUNNING,從而來(lái)表示Job正在進(jìn)行中。在Job運(yùn)行過(guò)程中,可以調(diào)用getJobState()來(lái)獲取Job的運(yùn)行狀態(tài)waitForCompletion(boolean)waitForCompletion函數(shù)會(huì)提交Job到對(duì)應(yīng)的Cluster,并等待Job執(zhí)行結(jié)束。函數(shù)的boolean參數(shù)表示是否打印Job執(zhí)行的相關(guān)信息。返回的結(jié)果是一個(gè)boolean變量,用來(lái)標(biāo)識(shí)Job的執(zhí)行結(jié)果Job提交方法submit()唐卓博ust_tz@126.com湖南大學(xué)信息科學(xué)與工程學(xué)院2014年8月大數(shù)據(jù)及其并行編程模型概述唐卓博數(shù)據(jù)及其并行主要內(nèi)容一、大數(shù)據(jù)概述二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維三、MapReduce并行編程詳解2注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大李東升教授:“大數(shù)據(jù)時(shí)代的挑戰(zhàn)和探索”主要內(nèi)容一、大數(shù)據(jù)概述2注:本課件前30頁(yè)P(yáng)PT來(lái)源于互聯(lián)網(wǎng)應(yīng)用數(shù)據(jù)急劇增長(zhǎng)
互聯(lián)網(wǎng)用戶數(shù)量巨大,日益活躍
?
微博、論壇、電子商務(wù)網(wǎng)站等
?
互聯(lián)網(wǎng)上的用戶生成數(shù)據(jù)(User
Generated
Content,
UGC)淘寶網(wǎng)每天新增數(shù)據(jù)40TB以上百度每天處理10PB量級(jí)的數(shù)據(jù),總數(shù)據(jù)量達(dá)1000PB應(yīng)用背景注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大李東升教授:“大數(shù)據(jù)時(shí)代的挑戰(zhàn)和探索”應(yīng)用背景注:本課件前30頁(yè)P(yáng)PT來(lái)源于國(guó)防科大一、大數(shù)據(jù)概述?
隨著信息化的推進(jìn),國(guó)民經(jīng)濟(jì)、國(guó)家安全
等領(lǐng)域的數(shù)據(jù)不斷增長(zhǎng)
物聯(lián)網(wǎng)、移動(dòng)通信電話、手機(jī)短信、語(yǔ)音數(shù)據(jù)
遙感、公共安全、醫(yī)療、交通、情報(bào)等很多領(lǐng)域
?
高分辨率衛(wèi)星(影像)、城市監(jiān)控?cái)z像頭(視頻)、…
?
據(jù)報(bào)道,武漢監(jiān)控?cái)z像頭已超過(guò)25萬(wàn)個(gè),如采用1080P高清攝
像頭(一天產(chǎn)生數(shù)據(jù)量40GB以上),整個(gè)城市每天新增監(jiān)控
數(shù)據(jù)10PB以上應(yīng)用背景一、大數(shù)據(jù)概述?隨著信息化的推進(jìn),國(guó)民經(jīng)濟(jì)、國(guó)家安全應(yīng)用?
科學(xué)實(shí)驗(yàn)數(shù)據(jù)規(guī)模巨大,增長(zhǎng)迅猛生物工程氣候監(jiān)測(cè)高能物理天文觀測(cè)生態(tài)環(huán)境
….氣候研究華大基因測(cè)序目前每天產(chǎn)生數(shù)據(jù)約15TB,一年超過(guò)5PB
一歐洲CERN對(duì)撞機(jī)每年產(chǎn)生的數(shù)據(jù)量超過(guò)15
PB基因測(cè)序應(yīng)用背景氣候研究華大基因測(cè)序目歐洲CERN對(duì)撞基因測(cè)序應(yīng)用背景全球數(shù)據(jù)量?IDC報(bào)告預(yù)測(cè):未來(lái)
十年,全球數(shù)據(jù)量繼
續(xù)迅速增長(zhǎng)Amount
of
digital
informationcreated
and
replicated
in
a
year––––年均增長(zhǎng)率超過(guò)40%2009年0.8ZB2020年35ZB1ZB~106PB月球容量4GB的DVD光用容量4GB的DVD光盤(pán)存儲(chǔ),DVD可從地球排至月球G-T-P-E-Z-Y全球數(shù)據(jù)量?IDC報(bào)告預(yù)測(cè):未來(lái)Amounto?
維基(Wiki)百科的定義
Big
data
is
a
collection
of
data
sets
so
large
and
complex
that
it
becomes
difficult
to
process
using
on-hand
database
management
tools
?
IDC的定義
Big
data
technologies
describe
a
new
generation
of
technologies
and
architectures,
designed
to
economically
extract
value
from
very
large
volumes
of
a
wide
variety
of
data,
by
enabling
high-velocity
capture,
discovery,
and/or
analysis.
什么是大數(shù)據(jù)大數(shù)據(jù)是超大、復(fù)雜的數(shù)據(jù)集,現(xiàn)有的數(shù)據(jù)庫(kù)管理技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)技術(shù)描述了新一代的技術(shù)和架構(gòu),通過(guò)高速的數(shù)據(jù)獲取、發(fā)現(xiàn)和分析技術(shù),以經(jīng)濟(jì)的方式從各種超大規(guī)模的數(shù)據(jù)中提取價(jià)值什么是大數(shù)據(jù)大數(shù)據(jù)是超大、復(fù)雜的數(shù)據(jù)集,現(xiàn)有的數(shù)據(jù)庫(kù)管理技術(shù)一、大數(shù)據(jù)概述?
Volume:規(guī)模大
從PB級(jí)到ZB級(jí)
1
ZB
~
106*
PB?
Variety:多樣化
結(jié)構(gòu)化、非結(jié)構(gòu)化
文本、圖像、視頻等?
Velocity:變化快
批處理/離線數(shù)據(jù)、流/實(shí)時(shí)/在線數(shù)據(jù)等?
Value/
Veracity:價(jià)值稀疏
/數(shù)據(jù)質(zhì)量
噪音和無(wú)用信息很多一、大數(shù)據(jù)概述大數(shù)據(jù)的特點(diǎn)一、大數(shù)據(jù)概述?Volume:規(guī)模大一、大數(shù)據(jù)概述大數(shù)?
大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重
要影響
–
互聯(lián)網(wǎng)產(chǎn)業(yè)、電子商務(wù)推薦、日常生活
大數(shù)據(jù)的影響季節(jié)性流感是一個(gè)重要的公共衛(wèi)生問(wèn)題:WHO估計(jì),全球每年25萬(wàn)至50萬(wàn)人因此死亡及時(shí)監(jiān)測(cè)到疾病的傳播情況,盡快采取應(yīng)對(duì)措施2008年,Google通過(guò)處理網(wǎng)絡(luò)搜索日志中的幾千億查詢數(shù)據(jù),訓(xùn)練建立流感疾病監(jiān)測(cè)的數(shù)學(xué)模型,比美國(guó)病控制和預(yù)防中心提前1-2周給出流感的傳播情況論文發(fā)表在Nature(2009.2):DetectingInfluenza
EpidemicsusingSearchEngineQueryData?大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重大數(shù)據(jù)的影響季節(jié)性?
大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重
要影響
–
科學(xué)研究
三種科研模式:理論、實(shí)驗(yàn)、計(jì)算第四模式:數(shù)據(jù)密集型的科學(xué)發(fā)現(xiàn)圖靈獎(jiǎng)獲得者JimGray2007年提出專(zhuān)輯:Nature(2008.9):”Big
Data”,Science(2011.2):”Dealing
with
data”大數(shù)據(jù)的影響?大數(shù)據(jù)技術(shù)對(duì)經(jīng)濟(jì)社會(huì)和科研都在產(chǎn)生重三種科研模式:理論?
2012年3月29日,美國(guó)政府宣布投資2億
美元啟動(dòng)“大數(shù)據(jù)研發(fā)計(jì)劃”(
Big
Data
R&D
Initiative
)
美NSF、國(guó)防部、能源部、衛(wèi)生總署等七部委?
我國(guó)科技部和基金委等部門(mén)高度重視
2013年973新立項(xiàng)項(xiàng)目:2項(xiàng)
“十二五”
國(guó)家科技計(jì)劃信息技術(shù)領(lǐng)域2013年度備選項(xiàng)
目征集指南?
國(guó)內(nèi)外學(xué)術(shù)界的熱點(diǎn)課題
SIGMOD、
VLDB、OSDI、NSDI等著名會(huì)議
Nature、Science雜志11大數(shù)據(jù)成為熱點(diǎn)課題?2012年3月29日,美國(guó)政府宣布投資2億11大數(shù)據(jù)?
傳統(tǒng)技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)的規(guī)模
–
數(shù)據(jù)存儲(chǔ)及訪問(wèn)的挑戰(zhàn)當(dāng)前較快硬盤(pán)的傳輸速度6Gbps,線性掃描10PB數(shù)據(jù),需約19天而百度、Google等互聯(lián)網(wǎng)公司每天處理
的數(shù)據(jù)量超過(guò)10PB案例源于:北航/愛(ài)丁堡樊文飛教授
?
可擴(kuò)展是大規(guī)模分布式系統(tǒng)面臨的基礎(chǔ)性問(wèn)題
–Jim
Gray(圖靈獎(jiǎng)獲得者)將可擴(kuò)展問(wèn)題列為信
息技術(shù)領(lǐng)域需解決的16個(gè)長(zhǎng)遠(yuǎn)問(wèn)題之首Jim
Gray.
What
Next?
A
Few
Remaining
Problems
in
Information
Technology.
ACM
Turing
Award
Lecture
(1999).
Available
at
http:///enus/um/people/gray/talks/Gray_Turing_FCRC.ppt大數(shù)據(jù)帶來(lái)的挑戰(zhàn)(1)?傳統(tǒng)技術(shù)難以應(yīng)對(duì)大數(shù)據(jù)的規(guī)模當(dāng)前較快硬盤(pán)的傳輸速度6?
很多大數(shù)據(jù)應(yīng)用對(duì)響應(yīng)時(shí)間要求高
–
規(guī)模大、響應(yīng)快:對(duì)存儲(chǔ)和處理提出了很大挑戰(zhàn)
–2007年前,Facebook使用數(shù)據(jù)庫(kù),總數(shù)據(jù)量15TB
?
目前,F(xiàn)acebook每天新增加的數(shù)據(jù)約70TB
–
傳統(tǒng)并行數(shù)據(jù)庫(kù)擴(kuò)展性受限,節(jié)點(diǎn)規(guī)模很少超過(guò)100,
且價(jià)格昂貴
?2011年,F(xiàn)acebook系統(tǒng)具有2700多個(gè)節(jié)點(diǎn),Google單個(gè)數(shù)據(jù)中心在上
萬(wàn)個(gè)節(jié)點(diǎn)集群上存儲(chǔ)了約10PB數(shù)據(jù)?
如何設(shè)計(jì)可擴(kuò)展、低成本、快速響應(yīng)的大
數(shù)據(jù)存儲(chǔ)和處理系統(tǒng)?大數(shù)據(jù)存儲(chǔ)與處理的可擴(kuò)展難題大數(shù)據(jù)存儲(chǔ)與處理的可擴(kuò)展難題數(shù)據(jù)種類(lèi)多,需求多樣,關(guān)聯(lián)復(fù)雜
–文本、圖像、圖形、視頻等
–在線/流數(shù)據(jù)、離線/批處理等如何建模、存儲(chǔ)、查詢、分析和理解多樣
化的復(fù)雜數(shù)據(jù),挖掘數(shù)據(jù)價(jià)值?
–
大數(shù)據(jù)中垃圾和珍寶并存
–大海撈針、去粗取精、去偽存真
–需要計(jì)算機(jī)專(zhuān)家和領(lǐng)域?qū)<业呐浜稀?大數(shù)據(jù)面臨的挑戰(zhàn)(2)數(shù)據(jù)種類(lèi)多,需求多樣,關(guān)聯(lián)復(fù)雜大數(shù)據(jù)面臨的挑戰(zhàn)(2)傳統(tǒng)算法在大數(shù)據(jù)時(shí)代可能不再有效
多項(xiàng)式時(shí)間算法O(Nk),N太大
需要計(jì)算復(fù)雜性和算法設(shè)計(jì)理論上的變革
需要大數(shù)據(jù)計(jì)算思維上的變化
例如,從確定性計(jì)算到非精確性計(jì)算
商品在線推薦:只需要計(jì)算出前10名相關(guān)的結(jié)果,有
一點(diǎn)不準(zhǔn)確也沒(méi)有關(guān)系傳統(tǒng)算法結(jié)論在大數(shù)據(jù)時(shí)代需要重新評(píng)估
–
簡(jiǎn)單方法+大數(shù)據(jù)集可能取得很好的結(jié)果大數(shù)據(jù)面臨的挑戰(zhàn)(3)傳統(tǒng)算法在大數(shù)據(jù)時(shí)代可能不再有效大數(shù)據(jù)面臨的挑戰(zhàn)(3)?
2007年,Google公司的Brants等人研究了機(jī)
器翻譯領(lǐng)域中基于單詞訓(xùn)練數(shù)據(jù)集的語(yǔ)言
模型
比較了當(dāng)時(shí)最先進(jìn)的KN算法
與其提出的一個(gè)簡(jiǎn)單算法SB
研究表明,簡(jiǎn)單算法在小數(shù)
據(jù)集時(shí)效果不佳,但在大數(shù)
據(jù)集時(shí),簡(jiǎn)單算法卻產(chǎn)生了
更好的效果
T.Brants,A.C.Popat,etal.LargeLanguageModelsinMachineTranslation.
ProceedingsoftheJointConferenceonEmpiricalMethodsinNatural
LanguageProcessingandComputationalNaturalLanguageLearning,2007.16傳統(tǒng)算法結(jié)論需要重新評(píng)估?2007年,Google公司的Brants等人研究?
大數(shù)據(jù)時(shí)代的算法新理論
–
新的計(jì)算復(fù)雜性和算法設(shè)計(jì)理論?
復(fù)雜大數(shù)據(jù)的建模、表示和可視化
–
多源異構(gòu)大數(shù)據(jù):由大到小?
面向大數(shù)據(jù)的新型存儲(chǔ)和計(jì)算系統(tǒng)架構(gòu)
–大規(guī)模并行/分布處理?
大數(shù)據(jù)(并行)挖掘算法及應(yīng)用大數(shù)據(jù)的研究課題?大數(shù)據(jù)時(shí)代的算法新理論大數(shù)據(jù)的研究課題主要內(nèi)容一、大數(shù)據(jù)概述二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維三、MapReduce并行編程詳解2主要內(nèi)容一、大數(shù)據(jù)概述2181.
數(shù)據(jù)為中心的計(jì)算架構(gòu)計(jì)算和存儲(chǔ)唇齒相依2.化繁為簡(jiǎn),分而治之
可擴(kuò)展的數(shù)據(jù)并行處理3.求同存異,聚焦領(lǐng)域放松傳統(tǒng)數(shù)據(jù)處理技術(shù)的約束,如一致性等、行式存儲(chǔ)-列式存儲(chǔ)高可擴(kuò)展高吞吐率高可靠性……主要內(nèi)容18二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維181.數(shù)據(jù)為中心的計(jì)算架構(gòu)高可擴(kuò)展主要內(nèi)容18二、應(yīng)對(duì)大1.
數(shù)據(jù)為中心的計(jì)算架構(gòu)過(guò)去20年來(lái),計(jì)算器件的帶寬提升了100–2000倍,而延遲改善只有5-20倍CPU
和
on-chip
L2之間:
帶寬:增長(zhǎng)了2250倍
延遲:降低了20倍L3
cache
和DRAM之間:
帶寬:增長(zhǎng)了125倍
延遲:降低了4倍DRAM
和disk之間:
帶寬:增長(zhǎng)了150倍
延遲:降低了8倍
LAN連接的兩個(gè)節(jié)點(diǎn)之間
:
帶寬:增長(zhǎng)了100倍
延遲:降低了15倍充分利用數(shù)據(jù)和存儲(chǔ)的局部性(緩存、復(fù)制、預(yù)?。┭舆t提升滯后于帶寬Source:CACM(Patterson)1.數(shù)據(jù)為中心的計(jì)算架構(gòu)過(guò)去20年來(lái),計(jì)算器件的帶寬充分二、應(yīng)對(duì)大數(shù)據(jù)的系統(tǒng)思維1.
數(shù)據(jù)為中心的計(jì)算架構(gòu)(續(xù))20二、應(yīng)對(duì)大數(shù)據(jù)的計(jì)算思維
–
數(shù)據(jù)分布存儲(chǔ)在計(jì)算附近?–
計(jì)算盡量利用數(shù)據(jù)局部性–
存儲(chǔ)架構(gòu)、互連網(wǎng)絡(luò)架構(gòu)數(shù)據(jù)密集型計(jì)算計(jì)算密集型計(jì)算
SystemData–
數(shù)據(jù)存儲(chǔ)與計(jì)算相分離–
計(jì)算之前加載數(shù)據(jù)–
規(guī)模挑戰(zhàn):元
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人住宅租賃中介協(xié)議協(xié)議版
- 物聯(lián)網(wǎng)驅(qū)動(dòng)的工業(yè)互聯(lián)網(wǎng)平臺(tái)技術(shù)創(chuàng)新研究
- 二零二五年度貨車(chē)司機(jī)勞動(dòng)合同規(guī)范3篇
- 星際之旅-科技如何改變我們的工作方式
- 科技助力閱讀學(xué)生閱讀習(xí)慣與能力的現(xiàn)代養(yǎng)成法
- 個(gè)人與單位2024年度委托代理合同3篇
- 二零二五年橡膠車(chē)間承包經(jīng)營(yíng)協(xié)議范本3篇
- 二零二五年度精裝房裝修材料采購(gòu)與配送協(xié)議3篇
- 2025年度船舶租賃與船舶租賃法律援助合同3篇
- 2025年度美容學(xué)徒實(shí)習(xí)培訓(xùn)及就業(yè)跟蹤服務(wù)合同4篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫(kù)
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 消防安全隱患等級(jí)
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測(cè)技術(shù)規(guī)范
- 部編版一年級(jí)語(yǔ)文下冊(cè)第一單元大單元教學(xué)設(shè)計(jì)
- 《保單檢視專(zhuān)題》課件
- 北京地鐵13號(hào)線
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 職業(yè)衛(wèi)生法律法規(guī)和標(biāo)準(zhǔn)培訓(xùn)課件
- 高二下學(xué)期英語(yǔ)閱讀提升練習(xí)(二)
- 民事訴訟證據(jù)清單模板
評(píng)論
0/150
提交評(píng)論