云計(jì)算課程實(shí)驗(yàn)指導(dǎo)與實(shí)驗(yàn)報(bào)告_第1頁(yè)
云計(jì)算課程實(shí)驗(yàn)指導(dǎo)與實(shí)驗(yàn)報(bào)告_第2頁(yè)
云計(jì)算課程實(shí)驗(yàn)指導(dǎo)與實(shí)驗(yàn)報(bào)告_第3頁(yè)
云計(jì)算課程實(shí)驗(yàn)指導(dǎo)與實(shí)驗(yàn)報(bào)告_第4頁(yè)
云計(jì)算課程實(shí)驗(yàn)指導(dǎo)與實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

云計(jì)算

PAGE

6

頁(yè)

云計(jì)算實(shí)驗(yàn)報(bào)告

學(xué)號(hào):

姓名:

提交日期:

成績(jī):

實(shí)驗(yàn)一

【實(shí)驗(yàn)內(nèi)容】

一、實(shí)驗(yàn)?zāi)康?/p>

在Linux環(huán)境下搭建hadoop平臺(tái),掌握hadoop平臺(tái)的搭建流程。

學(xué)習(xí)使用HDFS,熟悉基本操作指令,學(xué)習(xí)在hadoop平臺(tái)下運(yùn)行程序。

二、實(shí)驗(yàn)步驟

注意!實(shí)驗(yàn)室使用的linux系統(tǒng)分為兩個(gè)版本,Ubuntu12和ubuntu14

Ubutun12的用戶名和密碼都是haiming

Ubuntu14的用戶名是wan,密碼是123

Ubuntu14登陸時(shí)需要先輸入用戶名和密碼登陸,然后用startx命令進(jìn)入圖形界面,熟練使用linux的同學(xué)可以不用圖形界面。

打開homefolder,注意,不同版本的linux操作系統(tǒng)打開homefolder的圖標(biāo)不同。

打開其中的hadoop文件夾,其中有一個(gè)haoop-1.0.3.tar.gz的壓縮包。

注意:原路徑下有一個(gè)解壓后的haoop-1.0.3文件夾,大家把這個(gè)重命名(加個(gè)"_old")

右鍵點(diǎn)擊壓縮包,解壓到本地,會(huì)生成一個(gè)hadoop-1.0.3的文件夾

說(shuō)明:hadoop是基于java環(huán)境,必須先安裝jdk,本虛擬機(jī)的jdk已經(jīng)安裝完畢,本次實(shí)驗(yàn)不需要再安裝。

打開其中的conf文件夾,hadoop的使用需要對(duì)其中的六個(gè)文件進(jìn)行配置

1、修改hdfs-site.xml:HDFS配置文件,該模板的屬性繼承于core-site.xml

2、修改mapred-site.xml:MapReduce的配置。

3、點(diǎn)擊圖標(biāo)啟動(dòng)一個(gè)終端,注意,不同系統(tǒng)啟動(dòng)終端的方法不同。

同時(shí)按Alt和F2,打開“運(yùn)行應(yīng)用程序”對(duì)話框,輸入:gnome-terminal,之后點(diǎn)右下角的“運(yùn)行”,就打開終端工具

4、在終端中輸入如下命令進(jìn)行格式化,格式化后會(huì)在tmp文件夾中生成目錄結(jié)構(gòu)

5、格式化之后輸入如下命令來(lái)啟動(dòng)hadoop,為簡(jiǎn)便起見(jiàn),本次實(shí)驗(yàn)略過(guò)了ssh安裝的過(guò)程,因此在啟動(dòng)過(guò)程中可能需要輸入密碼,大家輸入登陸密碼即可。

6、例子中的wordcount程序,以hdfs中input為輸入,建立一個(gè)文件夾output為輸出,運(yùn)行中可以通過(guò)上邊提到的網(wǎng)頁(yè)觀察程序運(yùn)行進(jìn)度,也可以從終端觀察。

三、實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)二

一、實(shí)驗(yàn)內(nèi)容

在Eclipse環(huán)境下編寫一個(gè)mapreduce程序,掌握mapredcue編程框架

將Mapreduce程序打包,在hadoop環(huán)境下運(yùn)行程序并觀察結(jié)果

二、實(shí)驗(yàn)步驟

使用eclipse新建一個(gè)javaproject

將hadoop-1.0.3.tar.gz解壓

在工程名上點(diǎn)右鍵,選擇buildpathaddexternalarchives

選擇剛才解壓的hadoop目錄下的如下jar包

在src上點(diǎn)擊右鍵,選擇newclass,新建類Wordcount

加入如下代碼

importjava.io.IOException;

importjava.util.StringTokenizer;

importorg.apache.hadoop.conf.Configuration;

importorg.apache.hadoop.fs.Path;

importorg.apache.hadoop.io.IntWritable;

importorg.apache.hadoop.io.Text;

importorg.apache.hadoop.mapreduce.Job;

importorg.apache.hadoop.mapreduce.Mapper;

importorg.apache.hadoop.mapreduce.Reducer;

importorg.apache.hadoop.mapreduce.lib.input.FileInputFormat;

importorg.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

importorg.apache.hadoop.util.GenericOptionsParser;

publicclassWordcount{

publicstaticclassTokenizerMapperextends

Mapper<Object,Text,Text,IntWritable>{

privatefinalstaticIntWritableone=newIntWritable(1);

privateTextword=newText();

publicvoidmap(Objectkey,Textvalue,Contextcontext)

throwsIOException,InterruptedException{

//構(gòu)造一個(gè)用來(lái)解析str的StringTokenizer對(duì)象。java默認(rèn)的分隔符是“空格”、“制表符(‘\t’)”、“換行符(‘\n’)”、“回車符(‘\r’)”。

StringTokenizeritr=newStringTokenizer(value.toString());

//hasMoreTokens()返回是否還有分隔符

while(itr.hasMoreTokens()){

//返回從當(dāng)前位置到下一個(gè)分隔符的字符串

word.set(itr.nextToken());

context.write(word,one);

}

}

}

publicstaticclassIntSumReducerextends

Reducer<Text,IntWritable,Text,IntWritable>{

privateIntWritableresult=newIntWritable();

publicvoidreduce(Textkey,Iterable<IntWritable>values,

Contextcontext)throwsIOException,InterruptedException{

intsum=0;

for(IntWritableval:values){

sum+=val.get();

}

result.set(sum);

context.write(key,result);

}

}

publicstaticvoidmain(String[]args)throwsException{

Configurationconf=newConfiguration();

if(args.length!=2){

System.err.println("Usage:wordcount<in><out>");

System.exit(2);

}

//Job的初始化

Jobjob=newJob(conf,"wordcount");

job.setJarByClass(Wordcount.class);

//然置Job處理的Map(拆分)、Combiner(中間結(jié)果合并)以及Reduce(合并)的相關(guān)處理類

job.setMapperClass(TokenizerMapper.class);

job.setCombinerClass(IntSumReducer.class);

job.setReducerClass(IntSumReducer.class);

//設(shè)置Job輸出結(jié)果<key,value>的中key和value數(shù)據(jù)類型

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

//調(diào)用setInputPath()和setOutputPath()設(shè)置輸入輸出路徑

FileInputFormat.addInputPath(job,newPath(args[0]));

FileOutputFormat.setOutputPath(job,newPath(args[1]));

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論