日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce:简单介绍

發(fā)布時(shí)間:2023/12/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce:简单介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MapReduce是Google流行的一種并行編程技術(shù)。 它用于處理大量數(shù)據(jù)。 僅通過(guò)將工作并行分配給多臺(tái)機(jī)器,就可以在合理的時(shí)間內(nèi)完成這種處理。 每臺(tái)機(jī)器都處理一小部分?jǐn)?shù)據(jù)。

MapReduce是一種編程模型,使開(kāi)發(fā)人員可以專注于編寫處理數(shù)據(jù)的代碼,而不必?fù)?dān)心并行執(zhí)行的細(xì)節(jié)。

MapReduce需要將要處理的數(shù)據(jù)建模為鍵值對(duì)。 開(kāi)發(fā)人員編寫了map函數(shù)和reduce函數(shù)的代碼。

MapReduce運(yùn)行時(shí)為每個(gè)鍵/值對(duì)調(diào)用map函數(shù)。 映射功能將鍵值對(duì)作為輸入,并產(chǎn)生另一個(gè)鍵值對(duì)的輸出。

MapReduce運(yùn)行時(shí)通過(guò)鍵對(duì)映射函數(shù)的輸出進(jìn)行排序和分組。 然后,它調(diào)用將其傳遞給鍵的reduce函數(shù)以及與該鍵關(guān)聯(lián)的值的列表。 為每個(gè)鍵調(diào)用reduce函數(shù)。 reduce函數(shù)的輸出是鍵值對(duì)。 該值通常是聚合值或通過(guò)處理為輸入鍵傳遞的值列表而計(jì)算出的值。 對(duì)于由map函數(shù)生成的每個(gè)中間鍵,調(diào)用reduce函數(shù)。 reduce函數(shù)的輸出是必需的結(jié)果。

例如,假設(shè)您有大量的日志文件,其中包含某些事件(例如訪問(wèn)帳戶)的審核日志。 您需要找出過(guò)去10年中每個(gè)帳戶被訪問(wèn)了多少次。
假定日志文件中的每一行都是審核記錄。 我們正在逐行處理日志文件,map和reduce函數(shù)如下所示:

map(key , value) {// key = byte offset in log file // value = a line in the log fileif ( value is an account access audit log) {account number = parse account from valueoutput key = account number, value = 1} }reduce(key, list of values) {// key = account number// list of values {1,1,1,1.....}for each valuecount = count + valueoutput key , count }

每個(gè)日志文件中的每一行都會(huì)調(diào)用map函數(shù)。 不相關(guān)的行將被忽略。 從相關(guān)行中解析出帳號(hào),并輸出一個(gè)值1。MapReduce運(yùn)行時(shí)按帳號(hào)對(duì)輸出進(jìn)行排序和分組。 為每個(gè)帳戶調(diào)用reduce函數(shù)。 reduce函數(shù)匯總每個(gè)帳戶的值,這是必需的結(jié)果。

MapReduce作業(yè)通常在計(jì)算機(jī)集群上執(zhí)行。 每臺(tái)機(jī)器執(zhí)行一個(gè)任務(wù),該任務(wù)可以是映射任務(wù),也可以是歸約任務(wù)。 每個(gè)任務(wù)都在處理數(shù)據(jù)的子集。 在上面的示例中,假設(shè)我們從一組大型輸入文件開(kāi)始。 MapReduce運(yùn)行時(shí)將輸入數(shù)據(jù)分為稱為分割或碎片的分區(qū)。 每個(gè)拆分或碎片均由計(jì)算機(jī)上的映射任務(wù)處理。 每個(gè)映射任務(wù)的輸出均按鍵排序和分區(qū)。 來(lái)自所有映射的輸出被合并以創(chuàng)建輸入到reduce任務(wù)的分區(qū)。

可以有多臺(tái)計(jì)算機(jī),每臺(tái)計(jì)算機(jī)都運(yùn)行簡(jiǎn)化任務(wù)。 每個(gè)reduce任務(wù)都有一個(gè)要處理的分區(qū)。 該分區(qū)可以具有多個(gè)鍵。 但是每個(gè)鍵的所有數(shù)據(jù)都在1個(gè)分區(qū)中。 換句話說(shuō),每個(gè)鍵只能處理1個(gè)縮減任務(wù)。

機(jī)器數(shù)量,映射任務(wù)數(shù)量,reduce任務(wù)數(shù)量以及其他幾項(xiàng)都是可配置的。

對(duì)于需要對(duì)大數(shù)據(jù)集進(jìn)行某些處理的問(wèn)題,MapReduce非常有用。 該算法可以分解為map和reduce函數(shù)。 MapReduce運(yùn)行時(shí)負(fù)責(zé)將處理分配到多臺(tái)計(jì)算機(jī)并匯總結(jié)果。

Apache Hadoop是mapreduce的開(kāi)源Java實(shí)現(xiàn)。 請(qǐng)繼續(xù)關(guān)注有關(guān)使用hadoop的有關(guān)mapreduce的未來(lái)博客/教程。

參考: 什么是MapReduce? 來(lái)自我們的JCG合作伙伴在“ Khangaonkar報(bào)告”中的報(bào)道 。

相關(guān)文章 :
  • Cajo,用Java完成分布式計(jì)算的最簡(jiǎn)單方法
  • Hibernate映射集合性能問(wèn)題
  • Java Code Geeks Andygene Web原型
  • Servlet 3.0異步處理可將服務(wù)器吞吐量提高十倍

翻譯自: https://www.javacodegeeks.com/2011/05/mapreduce-soft-introduction.html

總結(jié)

以上是生活随笔為你收集整理的MapReduce:简单介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。