自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MapReduce初級(jí)案例——數(shù)據(jù)排序

大數(shù)據(jù)
“ 數(shù)據(jù)排序”是許多實(shí)際任務(wù)執(zhí)行時(shí)要完成的第一項(xiàng)工作,比如學(xué)生成績(jī)?cè)u(píng)比、 數(shù)據(jù)建立索引等。這個(gè)實(shí)例和數(shù)據(jù)去重類(lèi)似,都是先對(duì)原始數(shù)據(jù)進(jìn)行初步處理,為進(jìn)一步的數(shù)據(jù)操作打好基礎(chǔ)。

[[173555]]

“ 數(shù)據(jù)排序”是許多實(shí)際任務(wù)執(zhí)行時(shí)要完成的第一項(xiàng)工作,比如學(xué)生成績(jī)?cè)u(píng)比、 數(shù)據(jù)建立索引等。這個(gè)實(shí)例和數(shù)據(jù)去重類(lèi)似,都是先對(duì)原始數(shù)據(jù)進(jìn)行初步處理,為進(jìn)一步的數(shù)據(jù)操作打好基礎(chǔ)。下面進(jìn)入這個(gè)示例。

1 實(shí)例描述

對(duì)輸入文件中數(shù)據(jù)進(jìn)行排序。 輸入文件中的每行內(nèi)容均為一個(gè)數(shù)字, 即一個(gè)數(shù)據(jù)。要求在輸出中每行有兩個(gè)間隔的數(shù)字,其中, 第一個(gè)代表原始數(shù)據(jù)在原始數(shù)據(jù)集中的位次, 第二個(gè)代表原始數(shù)據(jù)。

樣例輸入:

(1) file1:

(2) file2:

(3) file3:

樣例輸出:

2 設(shè)計(jì)思路

這個(gè)實(shí)例僅僅要求對(duì)輸入數(shù)據(jù)進(jìn)行排序,熟悉 MapReduce 過(guò)程的讀者會(huì)很快想到在MapReduce 過(guò)程中就有排序,是否可以利用這個(gè)默認(rèn)的排序,而不需要自己再實(shí)現(xiàn)具體的排序呢?答案是肯定的。

但是在使用之前首先需要了解它的默認(rèn)排序規(guī)則。它是按照 key 值進(jìn)行排序的,如果key 為封裝 int 的 IntWritable 類(lèi)型,那么 MapReduce 按照數(shù)字大小對(duì) key 排序,如果 key為封裝為 String 的 Text 類(lèi)型,那么 MapReduce 按照字典順序?qū)ψ址判颉?/p>

了解了這個(gè)細(xì)節(jié),我們就知道應(yīng)該使用封裝 int 的 IntWritable 型數(shù)據(jù)結(jié)構(gòu)了。也就是在map 中將讀入的數(shù)據(jù)轉(zhuǎn)化成 IntWritable 型,然后作為 key 值輸出( value 任意)。 reduce 拿到之后,將輸入的 key 作為 value 輸出,并根據(jù) value-list 中元素的個(gè)數(shù)決定輸出的次數(shù)。輸出的 key(即代碼中的 linenum)是一個(gè)全局變量,它統(tǒng)計(jì)當(dāng)前 key 的位次。

需要注意的是這個(gè)程序中沒(méi)有配置 Combiner,也就是在 MapReduce 過(guò)程中不使用 Combiner。這主要是因?yàn)槭褂?map 和 reduce 就已經(jīng)能夠完成任務(wù)了。

3 程序代碼

程序代碼如下所示:

 

4 代碼結(jié)果

(1)準(zhǔn)備測(cè)試數(shù)據(jù)

通過(guò) Eclipse 下面的“ DFS Locations”在“ /user/hadoop”目錄下創(chuàng)建輸入文件“ sort_in”文件夾( 備注:“ sort_out”不需要?jiǎng)?chuàng)建。)如圖 2.4-1 所示,已經(jīng)成功創(chuàng)建。

然后在本地建立三個(gè) txt 文件,通過(guò) Eclipse 上傳到“ /user/hadoop/sort_in”文件夾中,三個(gè) txt 文件的內(nèi)容如“實(shí)例描述”那三個(gè)文件一樣。如圖 2.4-2 所示,成功上傳之后。從 SecureCRT 遠(yuǎn)處查看“ Master.Hadoop”的也能證實(shí)我們上傳的三個(gè)文件。

查看兩個(gè)文件的內(nèi)容如圖 2.4-3 所示:

(2)查看運(yùn)行結(jié)果

這時(shí)我們右擊 Eclipse 的“ DFS Locations”中“ /user/hadoop”文件夾進(jìn)行刷新,這時(shí)會(huì)發(fā)現(xiàn)多出一個(gè)“ sort_out”文件夾,且里面有 3 個(gè)文件,然后打開(kāi)雙其“ part-r-00000”文件,會(huì)在 Eclipse 中間把內(nèi)容顯示出來(lái)。如圖 2.4-4 所示。

責(zé)任編輯:趙寧寧 來(lái)源: 36大數(shù)據(jù)
相關(guān)推薦

2013-04-24 10:47:48

Hadoop集群

2016-10-14 16:52:03

單表關(guān)聯(lián)數(shù)據(jù)信息

2021-02-26 05:29:11

排序算法數(shù)組

2021-02-22 07:29:07

算法初級(jí)排序

2011-08-10 11:16:00

Platform

2019-08-14 17:13:23

大數(shù)據(jù)MapReduce框架

2009-08-14 13:20:29

ASP.NET Gri

2014-03-17 15:28:48

MapReduce

2023-03-06 08:10:52

數(shù)據(jù)結(jié)構(gòu)算法數(shù)據(jù)

2009-10-27 10:58:00

VB.NET文件名排序

2018-11-14 14:33:33

MapReduce數(shù)據(jù)集計(jì)算

2011-10-18 14:00:30

MapReduce分布式流式

2019-11-08 14:31:45

MapReduce數(shù)據(jù)集數(shù)據(jù)結(jié)構(gòu)

2016-05-09 10:16:14

MapReduce數(shù)據(jù)分析明星微博

2012-08-08 09:53:23

HadoopMapReduce

2020-06-19 17:43:51

華為

2023-09-27 15:34:48

數(shù)據(jù)編程

2020-11-03 10:16:24

Hive數(shù)據(jù)傾斜Hive SQL

2017-04-19 11:17:48

SparkHadoopMapReduce

2014-03-20 09:49:51

MapReduce
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)