在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 大數(shù)據(jù)/ Hadoop MapReduce
Hadoop命令參考
Hadoop教程
Hadoop介紹快速入門
Pig & Hive介紹
Hadoop MapReduce
Hadoop安裝
Hadoop環(huán)境安裝設(shè)置
Hadoop HDFS入門
理解 MapReducer
Hadoop多節(jié)點(diǎn)集群
OOZIE 五分鐘入門學(xué)習(xí)
Flume和Sqoop
Hadoop是什么?
MapReduce計(jì)數(shù)器和連接
MapReduce Hadoop程序連接數(shù)據(jù)
Hadoop Streaming
Hadoop HDFS
Hadoop程序入門實(shí)踐
MapReduce簡(jiǎn)介和入門
Hadoop大數(shù)據(jù)解決方案
Hadoop HDFS操作

Hadoop MapReduce

MapReduce它可以編寫(xiě)應(yīng)用程序來(lái)處理海量數(shù)據(jù),并行,大集群的普通硬件,以可靠的方式的框架。

MapReduce是什么?

MapReduce是一種處理技術(shù)和程序模型基于Java的分布式計(jì)算。 MapReduce算法包含了兩項(xiàng)重要任務(wù),即Map 和 Reduce。Map采用了一組數(shù)據(jù),并將其轉(zhuǎn)換成另一組數(shù)據(jù),其中,各個(gè)元件被分解成元組(鍵/值對(duì))。其次,減少任務(wù),這需要從Map 作為輸入并組合那些數(shù)據(jù)元組成的一組小的元組輸出。作為MapReduce暗示的名稱的序列在Map作業(yè)之后執(zhí)行reduce任務(wù)。

MapReduce主要優(yōu)點(diǎn)是,它很容易大規(guī)模數(shù)據(jù)處理在多個(gè)計(jì)算節(jié)點(diǎn)。下面MapReduce模型中,數(shù)據(jù)處理的原語(yǔ)被稱為映射器和減速器。分解數(shù)據(jù)處理應(yīng)用到映射器和減速器有時(shí)是普通的。但是編寫(xiě)MapReduce形式的應(yīng)用,擴(kuò)展應(yīng)用程序運(yùn)行在幾百,幾千,甚至幾萬(wàn)機(jī)集群中的僅僅是一個(gè)配置的更改。這個(gè)簡(jiǎn)單的可擴(kuò)展性是吸引了眾多程序員使用MapReduce模型。

算法

  • 通常MapReduce范例是基于向發(fā)送計(jì)算機(jī)數(shù)據(jù)的位置!

  • MapReduce計(jì)劃分三個(gè)階段執(zhí)行,即映射階段,shuffle階段,并減少階段。

    • 映射階段:映射或映射器的工作是處理輸入數(shù)據(jù)。一般輸入數(shù)據(jù)是在文件或目錄的形式,并且被存儲(chǔ)在Hadoop的文件系統(tǒng)(HDFS)。輸入文件被傳遞到由線映射器功能線路。映射器處理該數(shù)據(jù),并創(chuàng)建數(shù)據(jù)的若干小塊。

    • 減少階段:這個(gè)階段是:Shuffle階段和Reduce階段的組合。減速器的工作是處理該來(lái)自映射器中的數(shù)據(jù)。處理之后,它產(chǎn)生一組新的輸出,這將被存儲(chǔ)在HDFS。

  • 在一個(gè)MapReduce工作,Hadoop的發(fā)送Map和Reduce任務(wù)到集群的相應(yīng)服務(wù)器。

  • 框架管理數(shù)據(jù)傳遞例如發(fā)出任務(wù)的所有節(jié)點(diǎn)之間的集群周圍的詳細(xì)信息,驗(yàn)證任務(wù)完成,和復(fù)制數(shù)據(jù)。

  • 大部分的計(jì)算發(fā)生在與在本地磁盤(pán)上,可以減少網(wǎng)絡(luò)通信量數(shù)據(jù)的節(jié)點(diǎn)。

  • 給定的任務(wù)完成后,將群集收集并減少了數(shù)據(jù),以形成一個(gè)合適的結(jié)果,并且將其發(fā)送回Hadoop服務(wù)器。

MapReduce Algorithm

輸入和輸出(Java透視圖)

MapReduce框架上的<key, value>對(duì)操作,也就是框架視圖的輸入工作作為一組<key, value>對(duì),并產(chǎn)生一組<key, value>對(duì)作為作業(yè)的輸出可以在不同的類型。

鍵和值類在框架連載的方式,因此,需要實(shí)現(xiàn)接口。此外,鍵類必須實(shí)現(xiàn)可寫(xiě),可比的接口,以方便框架排序。MapReduce工作的輸入和輸出類型:(輸入)<k1, v1> ->映射 - ><k2, v2>-> reduce - ><k3, v3>(輸出)。

  輸入 輸出
Map <k1, v1> list (<k2, v2>)
Reduce <k2, list(v2)> list (<k3, v3>)

術(shù)語(yǔ)

  • PayLoad - 應(yīng)用程序?qū)崿F(xiàn)映射和減少功能,形成工作的核心。

  • Mapper - 映射器的輸入鍵/值對(duì)映射到一組中間鍵/值對(duì)。

  • NamedNode - 節(jié)點(diǎn)管理Hadoop分布式文件系統(tǒng)(HDFS)。

  • DataNode - 節(jié)點(diǎn)數(shù)據(jù)呈現(xiàn)在任何處理發(fā)生之前。

  • MasterNode - 節(jié)點(diǎn)所在JobTracker運(yùn)行并接受來(lái)自客戶端作業(yè)請(qǐng)求。

  • SlaveNode - 節(jié)點(diǎn)所在Map和Reduce程序運(yùn)行。

  • JobTracker - 調(diào)度作業(yè)并跟蹤作業(yè)分配給任務(wù)跟蹤器。

  • Task Tracker - 跟蹤任務(wù)和報(bào)告狀態(tài)的JobTracker。

  • Job -程序在整個(gè)數(shù)據(jù)集映射器和減速的執(zhí)行。

  • Task - 一個(gè)映射程序的執(zhí)行或?qū)?shù)據(jù)的一個(gè)片段的減速器。

  • Task Attempt - 一種嘗試的特定實(shí)例在SlaveNode執(zhí)行任務(wù)。

示例場(chǎng)景

下面給出是關(guān)于一個(gè)組織的電消耗量的數(shù)據(jù)。它包含了每月的用電量,各年的平均。

  Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Avg
1979 23 23 2 43 24 25 26 26 26 26 25 26 25
1980 26 27 28 28 28 30 31 31 31 30 30 30 29
1981 31 32 32 32 33 34 35 36 36 34 34 34 34
1984 39 38 39 39 39 41 42 43 40 39 38 38 40
1985 38 39 39 39 39 41 41 41 00 40 39 39 45

如果上述數(shù)據(jù)作為輸入,我們需要編寫(xiě)應(yīng)用程序來(lái)處理它而產(chǎn)生的結(jié)果,如發(fā)現(xiàn)最大使用量,最低使用年份,依此類推。這是一個(gè)輕松取勝用于記錄有限數(shù)目的編程器。他們將編寫(xiě)簡(jiǎn)單地邏輯,以產(chǎn)生所需的輸出,并且將數(shù)據(jù)傳遞到寫(xiě)入的應(yīng)用程序。

但是,代表一個(gè)特定狀態(tài)下所有的大規(guī)模產(chǎn)業(yè)的電力消耗數(shù)據(jù)。

當(dāng)我們編寫(xiě)應(yīng)用程序來(lái)處理這樣的大量數(shù)據(jù),

  • 他們需要大量的時(shí)間來(lái)執(zhí)行。
  • 將會(huì)有一個(gè)很大的網(wǎng)絡(luò)流量,當(dāng)我們將數(shù)據(jù)從源到網(wǎng)絡(luò)服務(wù)器等。

為了解決這些問(wèn)題,使用MapReduce框架。

輸入數(shù)據(jù)

上述數(shù)據(jù)被保存為 sample.txt 并作為輸入。輸入文件看起來(lái)如下所示。

1979   23   23   2   43   24   25   26   26   26   26   25   26  25 
1980   26   27   28  28   28   30   31   31   31   30   30   30  29 
1981   31   32   32  32   33   34   35   36   36   34   34   34  34 
1984   39   38   39  39   39   41   42   43   40   39   38   38  40 
1985   38   39   39  39   39   41   41   41   00   40   39   39  45 

示例程序

下面給出的是使用MapReduce框架的樣本數(shù)據(jù)的程序。

package hadoop; 

import java.util.*; 

import java.io.IOException; 
import java.io上一篇:Hadoop環(huán)境安裝設(shè)置下一篇:Hadoop安裝