真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mapreduce多文件輸出新API怎么實現(xiàn)

本篇內(nèi)容介紹了“mapreduce多文件輸出新API怎么實現(xiàn)”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為衡陽等服務建站,衡陽等地企業(yè),進行企業(yè)商務咨詢服務。為衡陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

    1、針對于代碼中的 MultipleOutputs.addNamedOutput(job, "errorlog",
    TextOutputFormat.class, Text.class, NullWritable.class);  方法,其實第二個參數(shù)并非是這么用的,下面看代碼:

private MultipleOutputs multipleOutputs = null;
	@Override
	protected void reduce(IntWritable key, Iterable values,Context context)
			throws IOException, InterruptedException {
		for(Text val:values){
			multipleOutputs.write("KeySplit", NullWritable.get(), val, key.toString()+"/");
			multipleOutputs.write("AllData", NullWritable.get(), val);
		}
	}

write函數(shù)很多重載方法,之前用的是三個參數(shù)的,這個方法其實是將所有的reduce輸出都輸出到一個文件夾中,

這時候我們在調(diào)用MultipleOutputs.addNamedOutput()函數(shù)的時候傳遞的第二個參數(shù)為多個,所以會導致

-rw-r--r--   2 hadoop supergroup   10569073 2014-06-06 11:50 /test/aa/fileRequest-m-00063.lzo
-rw-r--r--   2 hadoop supergroup   10512656 2014-06-06 11:50 /test/aa/fileRequest-m-00064.lzo
-rw-r--r--   2 hadoop supergroup      68780 2014-06-06 11:51 /test/aa/firstIntoTime-m-00000.lzo
-rw-r--r--   2 hadoop supergroup      67901 2014-06-06 11:51 /test/aa/firstIntoTime-m-00001.lzo

這樣的現(xiàn)象,而且會多輸出很多沒有用的空文件

那么其實write方法有一個帶有四個參數(shù)的方法,最后一個參數(shù)就恰巧是傳遞一個目錄進去,目的是針對于不同的邏輯將reduce產(chǎn)生的數(shù)據(jù)輸出到不同的文件夾目錄下。如第一段代碼中的multipleOutputs.write("KeySplit", NullWritable.get(), val, key.toString()+"/");語句,最后一個參數(shù)的作用就是相將key作為文件夾,將具有相同key 的數(shù)據(jù)輸出到這個文件夾中,后面跟著一個“/” 代表是當前目錄下,當前目錄指的肯定不是項目的當前目錄,他是在執(zhí)行hadoop jar 時傳遞的輸出目錄的參數(shù),如:hadoop jar test.jar com.TestJob /input /output    

假設數(shù)據(jù)是這樣的:
1    麗梅
1    小輝
2    小紅
3    大華

那么將輸出三個文件夾分別為
/output/1
/output/2
/output/3
其中/output/1這個文件夾中一個文件,內(nèi)容為

1    麗梅
1    小輝

write函數(shù)還有其他方法,暫時還沒有研究,而且針對于write方法的第一個函數(shù)也沒有去研究,如果有時間,會把多文件輸出詳細總結一下

注:在配置job的時候

這句代碼

MultipleOutputs.addNamedOutput(job, "errorlog",
    TextOutputFormat.class, Text.class, NullWritable.class);

“mapreduce多文件輸出新API怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


名稱欄目:mapreduce多文件輸出新API怎么實現(xiàn)
URL標題:http://www.weahome.cn/article/ggdpcp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部