十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章給大家分享的是有關(guān)MapReduce有什么特點(diǎn)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比梅縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式梅縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋梅縣地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。
MapReduce特點(diǎn)
? 易于編程(熟悉之后確實(shí)很簡(jiǎn)單,大多數(shù)是map和reduce兩個(gè)部分。hive和pig讓mapreduce更加簡(jiǎn)單)
? 良好的擴(kuò)展性(簡(jiǎn)單的添加機(jī)器就可以實(shí)現(xiàn))
? 高容錯(cuò)性(job中任務(wù)部分失敗,可以重新執(zhí)行)
? 適合PB級(jí)以上海量數(shù)據(jù)的離線處理
MapReduce不擅長(zhǎng)
? 實(shí)時(shí)計(jì)算
? 像MySQL一樣,在毫秒級(jí)或者秒級(jí)內(nèi)返回結(jié)果(可以參考Spark或HBase,HBase隨機(jī)讀寫性能好,統(tǒng)計(jì)不太好)
? 流式計(jì)算
? MapReduce的輸入數(shù)據(jù)集是靜態(tài)的,不能動(dòng)態(tài)變化
? MapReduce自身的設(shè)計(jì)特點(diǎn)決定了數(shù)據(jù)源必須是靜態(tài)的(可以考慮Storm)
? DAG計(jì)算
? 多個(gè)應(yīng)用程序存在依賴關(guān)系,后一個(gè)應(yīng)用程序的輸入為前一個(gè)的輸出(Tez)
MapReduce將作業(yè)的整個(gè)運(yùn)行過(guò)程分為兩個(gè)階段
Map階段和Reduce階段
? Map階段由一定數(shù)量的Map Task組成
? 輸入數(shù)據(jù)格式解析:InputFormat
? 輸入數(shù)據(jù)處理:Mapper
? 數(shù)據(jù)分組:Partitioner
? Reduce階段由一定數(shù)量的Reduce Task組成
? 數(shù)據(jù)遠(yuǎn)程拷貝
? 數(shù)據(jù)按照key排序
? 數(shù)據(jù)處理:Reducer
? 數(shù)據(jù)輸出格式:OutputFormat
? 默認(rèn)TextInputFormat對(duì)文件切分,并處理每一個(gè)Split,提供RecordReader生成key/value
TextInputFormat:Key是行在文件中的偏移量,value是行內(nèi)容若行被截?cái)?,則讀取下一個(gè)block的前幾個(gè)字符
設(shè)計(jì)到的概念 ?
Block
? HDFS中最小的數(shù)據(jù)存儲(chǔ)單位默認(rèn)是64MB
? Spit
? MapReduce中最小的計(jì)算單元默認(rèn)與Block一一對(duì)應(yīng)
? Block與Split
? Split與Block是對(duì)應(yīng)關(guān)系是任意的,可由用戶控制
Map階段
? InputFormat(默認(rèn)TextInputFormat)
? Mapper
? Partitioner
? Sort(可選)
? Combiner(local reducer)(可選)
Reduce階段
? Sort
? Reducer
? OutputFormat(默認(rèn)TextOutputFormat)
Combiner
Combiner可做看local reducer合并相同的key對(duì)應(yīng)的value(wordcount例子)通常與Reducer邏輯一樣好處
?減少M(fèi)ap Task輸出數(shù)據(jù)量(磁盤IO)
?減少Reduce-Map網(wǎng)絡(luò)傳輸數(shù)據(jù)量(網(wǎng)絡(luò)IO)
?結(jié)果可疊加
?Sum(YES!),Average(NO!)
Partitioner
? Partitioner決定了Map Task輸出的每條數(shù)據(jù)交給哪個(gè)Reduce Task處理默認(rèn)實(shí)現(xiàn):hash(key) mod R R是Reduce Task數(shù)目
? 允許用戶自定義,很多情況需自定義Partitioner
? 比如“hash(hostname(URL)) mod R”確保相同域名的網(wǎng)頁(yè)交給同一個(gè)Reduce Task處理
感謝各位的閱讀!關(guān)于“MapReduce有什么特點(diǎn)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!