成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

向你老婆解釋清楚MapReduce

開發 開發工具
本文的主要內容是如何通俗易懂的理解MapReduce。

干巴巴的定義

MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。

當前的軟件實現是指定一個Map(映射)函數,用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(歸約)函數,用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

形象的解釋1:統計圖書

我們要數圖書館中的所有書。你數1號書架,我數2號書架,這就是“Map”。我們人越多,數的就更快。

現在我們到一起,把所有人的統計數加在一起,這就是“Reduce”。

形象的解釋2:統計圖形

我們來看一個關于圖形統計的MapReduce流程,兩個人負責把左側的一堆圖形,按照形狀和顏色歸類統計各自的數量。

圖形統計的MapReduce流程

實戰:計算平均成績的Java Hadoop MapReduce程序

說了那么多,你老婆可能已經理解了MR,但是你可能還無法和程序代碼聯系起來,下面的這個小例子可以幫助到你,類似的樣例網上很多,去搜索吧,這里簡單分析一下關鍵代碼,通過標注的name和Text key,你需要理解什么是MapReduce中的key以及key的作用。

數據環境:位于Hadoop中的chinese.txt、english.txt、math.txt文件分別記錄了所有學生的語文、英語、數學成績,文件內容格式為,姓名 分數,中間以空格分隔。

  1. public class Score { 
  2.     public static class ScoreMap extends 
  3.             Mapper<LongWritable, Text, Text, IntWritable> { 
  4.         // 實現map函數 
  5.         public void map(LongWritable key, Text value, Context context) 
  6.                 throws IOException, InterruptedException { 
  7.             // 將輸入的純文本文件的數據轉化成String 
  8.             String line = value.toString(); 
  9.             // 將輸入的數據首先按行進行分割 
  10.             StringTokenizer tokenizerArticle = new StringTokenizer(line, "\n"); 
  11.             // 分別對每一行進行處理 
  12.             while (tokenizerArticle.hasMoreElements()) { 
  13.                 // 每行按空格劃分 
  14.                 StringTokenizer tokenizerLine = new StringTokenizer(tokenizerArticle.nextToken()); 
  15.                 String strName = tokenizerLine.nextToken();// 學生姓名部分 
  16.                 String strScore = tokenizerLine.nextToken();// 成績部分 
  17.                 Text name = new Text(strName); 
  18.                 int scoreInt = Integer.parseInt(strScore); 
  19.                 // 輸出姓名和成績,以name做為key對分數歸類 
  20.                 context.write(name, new IntWritable(scoreInt)); 
  21.             } 
  22.         } 
  23.     } 
  24.  
  25.     public static class ScoreReduce extends 
  26.             Reducer<Text, IntWritable, Text, IntWritable> { 
  27.         // 實現reduce函數 
  28.         public void reduce(Text key, Iterable<IntWritable> values, 
  29.                 Context context) throws IOException, InterruptedException { 
  30.             int sum = 0
  31.             int count = 0
  32.             Iterator<IntWritable> iterator = values.iterator(); 
  33.             while (iterator.hasNext()) { 
  34.                 sum += iterator.next().get();// 計算總分 
  35.                 count++;// 統計總的科目數 
  36.             } 
  37.             int average = (int) sum / count;// 計算平均成績 
  38.             context.write(key, new IntWritable(average)); 
  39.         } 
  40.     } 
  41.     public static void main(String[] args) throws Exception { 
  42.         ... 
  43.         // 設置Map和Reduce處理類 
  44.         job.setMapperClass(ScoreMap.class); 
  45.         job.setReducerClass(ScoreReduce.class); 
  46.        ... 
  47.     } 

***的話

如果你要進一步了解MR,***的方法就是從頭成功運行一個hello world程序,通過一次成功的實踐,你會發現MR這東西實在太簡單了,否則說明你還沒有成功運行過***個小程序。實踐!實踐!實踐!

【本文為51CTO專欄作者“朱國立”的原創稿件,轉載請通過作者微信公眾號“開發者圓桌”獲取聯系和授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2014-11-11 15:46:54

MapReduce算法

2025-03-03 08:40:00

JavaScriptthis開發

2023-07-10 08:59:37

Dubbo通信模式

2024-01-25 11:41:00

Python開發前端

2025-01-09 09:30:00

2010-08-12 16:28:35

面試官

2018-01-10 22:28:19

GDPR

2013-06-13 14:05:51

關機程序

2010-05-14 11:37:46

網絡攻擊黑客美國

2021-05-14 11:26:47

大數據

2021-02-23 19:22:27

人工智能AI

2021-04-07 18:32:05

黑客網絡安全網絡攻擊

2016-09-09 18:38:30

Wi-Fi地鐵免費Wi-Fi

2021-10-25 08:49:32

索引數據庫MySQL

2017-06-05 11:03:07

Linuxshutdown命令

2019-05-21 21:36:42

Python編程語言游戲

2021-10-23 09:32:07

辦公

2018-11-14 14:33:33

MapReduce數據集計算

2011-10-18 14:00:30

MapReduce分布式流式

2011-04-27 10:11:58

耗材用戶體驗
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品日韩高清伦字幕搜索 | 网站黄色在线免费观看 | 中文字幕第一页在线 | 91精品91久久久 | 韩国精品一区 | 日韩三级在线观看 | 欧美激情综合网 | 免费看91| 日本成人中文字幕在线观看 | 欧洲精品在线观看 | 精品福利在线 | 亚洲最大的成人网 | 华人黄网站大全 | 日本精品视频一区二区 | 国产黄色大片网站 | 久久国产成人精品国产成人亚洲 | 免费观看的av毛片的网站 | 一区二区三区在线观看视频 | 国产精品无 | 黄色精品 | 国产精品18久久久久久久 | 久久伊人影院 | 香蕉视频久久久 | 国产伦精品一区二区三区照片91 | 国产精品免费观看 | www.天堂av.com| 日韩字幕一区 | 久久99精品久久久久久 | 先锋影音资源网站 | 久久天天躁狠狠躁夜夜躁2014 | 亚洲品质自拍视频 | 激情五月综合 | 久久久爽爽爽美女图片 | 黄色国产视频 | 最近日韩中文字幕 | 亚洲欧美一区二区三区国产精品 | 久久久久网站 | 久久99精品久久久久蜜桃tv | 午夜一区| 91动漫在线观看 | 日韩一区精品 |