帶你了解mapreduce

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