帶你了解mapreduce
計(jì)算機(jī)編程是一門(mén)復(fù)雜的學(xué)問(wèn),但也不阻礙它仍有許多狂熱追求者。在編程中,會(huì)有很多編程模型。編程模型,可以簡(jiǎn)單地理解為模板,遇到相似問(wèn)題,程序員可以模板化解決,這樣就減輕了程序員的工作負(fù)擔(dān)。不同的編程環(huán)境和不同的應(yīng)用對(duì)象,會(huì)有對(duì)應(yīng)的不同的編程模型。今天我們來(lái)了解一下mapreduce這個(gè)編程模型,這是應(yīng)用于大規(guī)模數(shù)據(jù)集群的并行運(yùn)算。Map是映射,Reduce是化簡(jiǎn)。簡(jiǎn)單來(lái)說(shuō),這個(gè)模板的特性,是讓不會(huì)分布式并行編程的人員,可以將程序運(yùn)行在分布式系統(tǒng)上。
目錄
1. 如何簡(jiǎn)單的理解mapreduce的應(yīng)用
2. mapreduce的主要技術(shù)特征
3. mapreduce的其他技術(shù)特征
4. mapreduce和Spark的區(qū)別是什么
5. 初學(xué)mapreduce的常見(jiàn)問(wèn)題
-
如何簡(jiǎn)單的理解mapreduce的應(yīng)用
mapreduce的應(yīng)用理念其實(shí)很簡(jiǎn)單,就是把一些數(shù)據(jù)先通過(guò)map(映射)進(jìn)行歸類(lèi),再通過(guò)reducer把同一類(lèi)的數(shù)據(jù)進(jìn)行化簡(jiǎn)處理。我們可以理解為,mapreduce是基于兩個(gè)哲學(xué)原理設(shè)計(jì)的,大而化小和異而化同。接收到很多復(fù)雜數(shù)據(jù),我們第一步就會(huì)先把數(shù)據(jù)分類(lèi),這就是異而化同。分類(lèi)之后再進(jìn)行細(xì)項(xiàng)分割,把數(shù)據(jù)切分成小塊后,就可以并發(fā)或者批量處理了,這就是大而化小。map的工作就是分類(lèi)數(shù)據(jù),然后輸出,reducer接收到的都是同類(lèi)數(shù)據(jù)再進(jìn)行分割處理。
-
mapreduce的主要技術(shù)特征
在了解過(guò)mapreduce的功能后,我們來(lái)了解一下mapreduce設(shè)計(jì)技術(shù)都有什么主要特征。1、因?yàn)閙apreduce需要進(jìn)行大規(guī)模的數(shù)據(jù)處理,并由大量的數(shù)據(jù)出錯(cuò)需求,所以在集群的構(gòu)建上,我們要選擇低端的商用服務(wù)器,由外橫向擴(kuò)展。2、使用的是低端的商用服務(wù)器,所以節(jié)點(diǎn)硬件失效是很常見(jiàn)的,因此設(shè)計(jì)的時(shí)候要考慮到不影響服務(wù)質(zhì)量的高容錯(cuò)計(jì)算系統(tǒng),并且在節(jié)點(diǎn)失效后能夠自動(dòng)加入加群。3、mapreduce會(huì)采用就近原則,將無(wú)法計(jì)算的數(shù)據(jù)轉(zhuǎn)移傳輸?shù)骄徒梢杂?jì)算的節(jié)點(diǎn),而不僅限于數(shù)據(jù)的處理。
-
mapreduce的其他技術(shù)特征
除了剛才介紹的主要技術(shù)特征外,想要做好mapreduce設(shè)計(jì),還要處理好以下三個(gè)方面。1、因?yàn)閙apreduce需要大規(guī)模的處理數(shù)據(jù),所以在內(nèi)存中儲(chǔ)存處理所有數(shù)據(jù)的難度很大,借助硬盤(pán)順序訪問(wèn)處理的技術(shù),可以大大提升處理速度。2、復(fù)雜度極高的編程其實(shí)對(duì)開(kāi)發(fā)者的認(rèn)知和判斷造成了巨大的負(fù)擔(dān),而mapreduce要提供抽象機(jī)制,將程序員與系統(tǒng)層細(xì)節(jié)隔離開(kāi)來(lái),程序員僅需描述需要計(jì)算什么,具體如何計(jì)算可交由系統(tǒng)的執(zhí)行框架處理。3、為了提升計(jì)算速度和數(shù)據(jù)處理規(guī)模,mapreduce的節(jié)點(diǎn)設(shè)計(jì)需要有很強(qiáng)的可擴(kuò)展性。
-
mapreduce和Spark的區(qū)別是什么
對(duì)于很多剛接觸編程的人來(lái)說(shuō),通常會(huì)無(wú)法完全理解mapreduce和spark的應(yīng)用區(qū)別。首先我們應(yīng)該明確,mapreduce是分布式運(yùn)算的編程框架,而Spark可以兼容HDFS、Hive等,可以融入hadoop的系統(tǒng)。這兩者的區(qū)別,主要表現(xiàn)在:1.spark基于內(nèi)存的運(yùn)算,要比mapreduce快100倍,基于硬盤(pán)的運(yùn)算,要比mapreduce快10倍。2.spark支持流式、離線運(yùn)算,而mapreduce則只支持離線運(yùn)算。3.mapreduce必須運(yùn)行在資源系統(tǒng)上,而spark本身集成資源調(diào)度,可以運(yùn)行在自身的Master、worker或者yarn上。
-
初學(xué)mapreduce的常見(jiàn)問(wèn)題
不管怎樣,想要真正學(xué)會(huì)、理解、應(yīng)用一種編程方式,都不是容易的事情。對(duì)于mapreduce初學(xué)者來(lái)說(shuō),經(jīng)常會(huì)問(wèn),mapreduce的輸入源可以是視圖嗎?答案是,這是不可以的,只能是表,這樣把結(jié)果寫(xiě)入到表或分區(qū)時(shí),才會(huì)覆蓋掉原有的數(shù)據(jù)。除此之外,初學(xué)者還應(yīng)該了解到Mapper中輸入的每條Record數(shù)據(jù),可以按序號(hào)讀取,也可以按照列名來(lái)獲取record,但是reduce.setup不能讀入輸入表,只能讀cache table。mapreduce在執(zhí)行時(shí),不可以調(diào)用shell文件,會(huì)被沙箱阻擋。如果還想要了解更多關(guān)于mapreduce的常見(jiàn)問(wèn)題,建議初學(xué)者可以多看一些文檔。
- 關(guān)于cms系統(tǒng)設(shè)計(jì)的小知識(shí)
- 中企動(dòng)力提醒:網(wǎng)絡(luò)違法案例,等??滩蝗菥?/a>
- 中企動(dòng)力:網(wǎng)站運(yùn)營(yíng)怎么做之統(tǒng)計(jì)后臺(tái)篇
- 中企動(dòng)力:網(wǎng)站運(yùn)營(yíng)難不難?
- 中企動(dòng)力在5G時(shí)代給企業(yè)的小建議
- 中企動(dòng)力:個(gè)人建站需要哪些能力?
- 中企動(dòng)力:公司網(wǎng)站被黑怎么辦?
- 中小企業(yè)數(shù)字經(jīng)濟(jì)論壇召開(kāi),中企動(dòng)力助力企業(yè)數(shù)字化轉(zhuǎn)型
- 中企動(dòng)力:教你如何建立“新型”企業(yè)網(wǎng)站
- 肉驢養(yǎng)殖利潤(rùn)效益分析
- 在線建網(wǎng)站靠譜嗎?在線建網(wǎng)站常問(wèn)的5個(gè)問(wèn)題!
- 營(yíng)銷(xiāo)廣告人員必看,市場(chǎng)分析包括哪些方面?
- 揭秘:在線建網(wǎng)站內(nèi)幕曝光,80%老板都被騙了
- 優(yōu)秀的廣告設(shè)計(jì)理念需要具備的基本要素
- 廣告聯(lián)盟的特點(diǎn)
- 數(shù)據(jù)庫(kù)在建立信息管理系統(tǒng)中的特點(diǎn)
- 抖音和今日頭條的關(guān)系淺析
- 你真的會(huì)寫(xiě)品牌推廣計(jì)劃嗎?
- 你了解linux運(yùn)維工程師嗎
- 微信推廣平臺(tái)如何起到良好的宣傳作用