亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

正在回答

3 回答

http://img1.sycdn.imooc.com//5e5653910001824a06490151.jpg大佬們,本人剛剛接觸hadoop就遇到這個,這個問題我太頭疼了,大佬們請幫我一下!??!

0 回復 有任何疑惑可以回復我~
#1

帝國大學

main()中添加 job.setJarByClass(WordCountJob.class);
2021-04-22 回復 有任何疑惑可以回復我~

/創建靜態內部類MyMapper

public static class MyMapper extends Mapper<LongWritable,Text,Text,LongWritable>{

//調用自帶的map()函數

protected void map(LongWritable k1,Text v1,Context context)?

throws IOException,InterruptedException{

//k1代表的是每一行的偏移量,v1代表的是每一行的內容

//將傳送進來的每一行數據切割,切割成單詞

String[] words =v1.toString().split(" ");

//迭代切割出來的單詞數據

for(String word:words) {

//將迭代出來的單詞數據封裝成<k2,v2>

Text k2 =new Text(word);

LongWritable v2=new LongWritable();

? ? ?//把<k2,v2>寫出去

context.write(k2, v2);

}

}

}

//創建自定義靜態內部類MyReducer

public static class MyReducer extends Reducer<Text,LongWritable,Text,LongWritable>{

/*

* 針對v2s做累加求和,并且最終把<k3,v3>寫出去

*/

protected void reducer(Text k2,Iterable<LongWritable> v2s,Context context)

? ? ? throws IOException,InterruptedException{

//創建一個表量sum來保存v2s的累加值

long sum=0;

for(LongWritable v2:v2s) {

sum=sum+v2.get();

}

//組裝<k3,v3>

Text k3=k2;

LongWritable v3=new LongWritable(sum);

//把組裝好的<k3,v3>寫出去

context.write(k3, v3);

}

}

代碼好像沒什么問題?

1 回復 有任何疑惑可以回復我~

我猜你的map的初始值是0吧?而且reduce沒有求和,檢查一下你的代碼?

0 回復 有任何疑惑可以回復我~
#1

qq_慕斯2033129 提問者

我的代碼是這樣,應該沒問題呀?
2020-02-12 回復 有任何疑惑可以回復我~
#2

0CJJ0 回復 qq_慕斯2033129 提問者

你map函數里面的寫成了LongWritable v2=new LongWritable();缺少初始值吧,這里的V2要給初始值,你試一下改成這樣LongWritable v2=new LongWritable(1L);
2020-02-17 回復 有任何疑惑可以回復我~
#3

0CJJ0 回復 qq_慕斯2033129 提問者

試一下改成LongWritable v2=new LongWritable(1L);
2020-02-17 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

跪求各位大神

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號