




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
分布式計(jì)算:批處理引擎MapReduce(第二部分)張MapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4MapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4MapReduce編程模型
MapReduce將作業(yè)的整個(gè)運(yùn)行過程分為兩個(gè)階段:Map階段和Reduce階段
Map階段由一定數(shù)量的Map
Task組成輸入數(shù)據(jù)格式解析:InputFormat輸入數(shù)據(jù)處理:Mapper數(shù)據(jù)分組:Partitioner
Reduce階段由一定數(shù)量的Reduce
Task組成數(shù)據(jù)
拷貝數(shù)據(jù)按照key排序數(shù)據(jù)處理:Reducer數(shù)據(jù)輸出格式:OutputFormatMapReduce編程模型Split
0Split
1Split
2Split
3MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)a1b1Partitionerc1c1Partitionera1c1Partitionerb1b1PartitionerShuffle
&
Sorta1a1Reducerb1b1Reducerb1c1c1Reducerc1Part-0Part-1Part-2Map階段Write(Outputformat)Write(Outputformat)Reduce階段Shuffle
&
SortShuffle
&
SortHDFSMapTaskReduceTaskWrite(Outputformat)inputsplitmapMapTaskreduceoutputReduceTaskinputsplitmapMapTaskbufferinmemorypartition,sort,combineand
spill
to
diskpartitionsmerge
ondiskmap
phasepartition
sortcombie
phaseinputsplitmapMapTaskreduceoutputReduceTaskother
reducersother
mappersbufferinmemorypartition,
sort,
combineand
spill
to
diskpartitionsmerge
ondiskmap
phasecopy
phasemerge
sort
phasereduce
phaseremotefetchmergemergemergememory
and
diskpartition
sortcombie
phase每一個(gè)Map
Task把輸出寫到內(nèi)存的bu?er中當(dāng)內(nèi)存bu?er到達(dá)一定閾值時(shí),
線程會把數(shù)據(jù)寫到磁盤根據(jù)Par66oner,把數(shù)據(jù)寫入到不同的par66on對于每個(gè)par66on的數(shù)據(jù)進(jìn)行排序運(yùn)行Combiner隨著Map
Task的運(yùn)行,磁盤上的spill文件越來越多對于一個(gè)par66on下的spill分片,會進(jìn)行合并(把多個(gè)spill合并)運(yùn)行Combiner拷貝屬于它ReduceTask啟動后,從每個(gè)Map
Task上的par66on文件把這些文件歸并排序MapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4一批TB或者PB量級的文檔,需要完成以下功能:
搜索符合某種規(guī) 則表達(dá)式)的單詞或者句子;
統(tǒng)計(jì)相應(yīng)的單詞或者句子的數(shù)目;
按照數(shù)目對其進(jìn)行排序,并輸出最終結(jié)果。HDFS中的文檔shop[A-Z.]+shopA10排序shopB5shopC25shopA10shopB5shopC25shopD100shopD100頻率統(tǒng)計(jì)結(jié)果排序結(jié)果分為兩個(gè)作業(yè):作業(yè)1:WordCount統(tǒng)計(jì)符合某種規(guī)則的單詞數(shù)目作業(yè)2:Sort按照單詞數(shù)目進(jìn)行全排序依賴于前一個(gè)作業(yè)的輸出結(jié)果Partitioner
默認(rèn)實(shí)現(xiàn):hash(key)
modR
“hash(hostname(URL))
mod
R”Combiner
在每個(gè)mapper進(jìn)行局部規(guī)約job.setPartitionerClass(AgePartitioner.class);
/file/view/SamplePartitioner.javaMapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4與Linux管道機(jī)制一致通過標(biāo)準(zhǔn)輸入輸出實(shí)現(xiàn)進(jìn)程間通信標(biāo)準(zhǔn)輸入輸出是任何語言都有的幾個(gè)舉例:cat
1.txt
|
grep
“dong”
|
sortcat
1.txt
|
python
grep.py
|
java
sort.jarNodeManagerMapTaskorReduce
TaskStreaming
Codeinputkey/valuesoutputkey/valuesstd
instd
out
以標(biāo)準(zhǔn)輸入流作為輸入;C++:cinC:scanf
以標(biāo)準(zhǔn)輸出流作為輸出;C++:coutC:printf
可實(shí)現(xiàn)Mapper和Reducer,其他組件(InputFormat、Partitioner等需要用Java語言實(shí)現(xiàn))
編譯程序,生成可執(zhí)行文件;g++
-o
mappermapper.cppg++
-o
reducerreducer.cpp
測試程序;cat
test.txt
|
./mapper
|
sort
|
./reducer
Hadoop上運(yùn)行Wordcount程序區(qū)分通用參數(shù)和命令行參數(shù),通用參數(shù)應(yīng)放在命令行參數(shù)前面,否則不起作用。通用參數(shù)有7個(gè):
-conf
-D
-fs
-jt
-files
-
libjars
-archives“-file”或者“-files”參數(shù),設(shè)置要分發(fā)到各個(gè)節(jié)點(diǎn)上的文件,對于mapper和reducer文件,必須要用或者“-files”或“-file”指定。
-files
mapper,reducer
-file
mapper
-file
reducer每次運(yùn)行程序前,清空輸出bin/hadoop
fs
-rmr
/test/output測試mapper和reducercat
test.txt|
php
mapper.php
|
sort
|
php
reducer.php在Hadoop上運(yùn)行測試mapper和reducercat
test.txt|
sh
mapper.sh
|
sort
|
sh
reducer.sh在Hadoop上運(yùn)行
定義Hadoop
Counter
使用標(biāo)準(zhǔn)錯(cuò)誤輸出,格式為reporter:counter:<group>,<counter>,<amount>
在運(yùn)行過程中展示狀態(tài)信息
使用標(biāo)準(zhǔn)錯(cuò)誤輸出,格式為reporter:status:<message>
打印調(diào)試信息
使用標(biāo)準(zhǔn)錯(cuò)誤輸出,調(diào)試信息將被保存stderr文件中
獲取conf配置信息,比如reduce
task個(gè)數(shù)等
在環(huán)境變量中獲取,所有的“.”被替換成了“_”int
main(int
argc,
char
*argv[],
char
*env[])
{比如:“mapreduce.job.reduces”被換成了"mapreduce_job_reduces"
對多字段文本數(shù)據(jù)的支持
Java編程Hadoop最原始開發(fā)語言;支持所有功能,是其他編程方式的基礎(chǔ)。
Streaming編程僅用于開發(fā)Mapper和Reducer,其他組件需采用Java實(shí)現(xiàn);天生支持文本格式,但二進(jìn)制格式支持較弱;通常用于簡單的文本數(shù)據(jù)處理,加快開發(fā)效率。MapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4JVM
HeapOff-heapmemory(JVM
overhead,
non-javaprocess)YARN
Containermapreduce.map.memory.mbmapreduce.map.memory.mbmapreduce.reduce.memory.mbmapreduce.map.java.optsmapreduce.reduce.java.opts-Dmapreduce.map.memory.mb=5120-Dmapreduce.reduce.memory.mb=5120-Dmapreduce.map.java.opts="-Xms4096m
-Xmx4096m"-Dmapreduce.reduce.java.opts="-Xms4096m
-Xmx4096m”mapreduce.map.java.optsmap.memory-map.java????mapreduce.map.maxattempts:map
task重試次數(shù),默認(rèn)是4mapreduce.reduce.maxattempts:reduce
task重試次數(shù),默認(rèn)是4mapreduce.map.failures.maxpercent:最大允許的map失敗率,默認(rèn)是0mapreduce.reduce.failures.maxpercent:最大允許的reduce失敗率,默認(rèn)是0jobMaptaskMaptaskMaptaskReducetask??mapreduce.map.speculative:是否打開map階段的推測執(zhí)行機(jī)制
mapreduce.reduce.speculative:是否打開reduce階段的推測執(zhí)行機(jī)制jobMaptaskMaptaskMaptask運(yùn)行時(shí)間:5min運(yùn)行時(shí)間:1min運(yùn)行時(shí)間:1min運(yùn)行時(shí)間:>5minmapreduce.input.fileinputformat.split.minsize:
每個(gè)map
task處理的數(shù)據(jù)量(大于一個(gè)block大小,以減少map
task數(shù)目)MaptaskMaptaskblockblockblockblockblockblockblock
blockHDFSMaptaskMaptaskMapReduce
On
YARNMapReduce
Java高級編程2MapReduce多語言編程3MapReduce編程模型回顧15
分布式日志分析系統(tǒng):ETL模塊總結(jié)6MapReduce調(diào)優(yōu)小技巧4FlumeAppSiteDeviceSqoopHDFSHive(Meta
Store
Server)DatabaseTablePartitionsETLloadcollectloadPrestoSQLMRMysql/Oracle用戶信息產(chǎn)品信息用戶行為數(shù)據(jù)批處理線
ETLExtract-‐Transform-‐Load
將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程
數(shù)據(jù)與轉(zhuǎn)換不符合要求的數(shù)據(jù)主要是有不完整的數(shù)據(jù)、錯(cuò)誤的數(shù)據(jù)、重復(fù)的數(shù)據(jù)不一致的數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)粒度的轉(zhuǎn)換,以及一些商務(wù)規(guī)則的計(jì)算
使用Hadoop
Streaming抽取日志部分字段轉(zhuǎn)換日期字段的日期格式HADOOP_CMD="hadoop
jar
/ho
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力電纜與通信管道共溝敷設(shè)
- 農(nóng)場種植土地租賃合同
- 公司電腦買賣合同
- 《高中化學(xué)實(shí)驗(yàn)操作示范課教案》
- 手房居間房屋買賣合同
- 石油管道鐵路穿越施工方案
- 遼寧廊架垂直綠化施工方案
- 26考研閱讀早鳥講義
- 養(yǎng)魚養(yǎng)殖技術(shù)培訓(xùn)指南
- 公司職員聘用合同
- TCCIIP 001-2024 綠色低碳園區(qū)標(biāo)準(zhǔn)
- GB/T 20972.2-2025石油天然氣工業(yè)油氣開采中用于含硫化氫環(huán)境的材料第2部分:抗開裂碳鋼、低合金鋼和鑄鐵
- 美團(tuán)供應(yīng)鏈管理案例分析
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫附帶答案詳解
- 陜西省西安市西咸新區(qū)2024年九年級下學(xué)期中考一模數(shù)學(xué)試題(含答案)
- 2025年內(nèi)蒙古烏蘭察布盟單招職業(yè)適應(yīng)性測試題庫新版
- 深圳市一模+Z20名校聯(lián)盟+浙江名校協(xié)作體高三語文2月聯(lián)考作文題目解析及相關(guān)范文
- 2025年浙江省寧波市外事服務(wù)中心招聘2人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024版《糖尿病健康宣教》課件
- 概算審核服務(wù)投標(biāo)方案(技術(shù)方案)
- 情感體驗(yàn)量表DESⅡ-附帶計(jì)分解釋
評論
0/150
提交評論