日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop MapReduce V2 Yarn——WordCount

發布時間:2024/2/28 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop MapReduce V2 Yarn——WordCount 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WordCount

原理圖示:

?

溢寫,打錯了。。。?

一、首先準備工作:

Hadoop的jar包,以及配置文件還有10000行的txt.文檔

二、創建MyWC類?

package com.henu.mr.wc;import java.io.IOException;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class MyWC {public static void main(String[] args) throws Exception {Configuration conf = new Configuration();// Create a new JobJob job = Job.getInstance(conf);job.setJarByClass(MyWC.class);// Specify various job-specific parametersjob.setJobName("myjob");// job.setInputPath(new Path("in"));// job.setOutputPath(new Path("out"));Path inPath = new Path("/user/root/test.txt");FileInputFormat.addInputPath(job, inPath);Path outPath = new Path("/output/wordcount");//如果輸出路徑存在則先刪除if (outPath.getFileSystem(conf).exists(outPath)) {outPath.getFileSystem(conf).delete(outPath,true);}FileOutputFormat.setOutputPath(job, outPath);job.setMapperClass(MyMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);job.setReducerClass(MyReducer.class);// Submit the job, then poll for progress until the job is completejob.waitForCompletion(true);}}

往往有同學覺得這方法沒見過呀,這些類,不好記呀。不用記得,伙伴們!

?

找到hadoop的javaAPI(別告訴我你不知道怎么找?。。。。。。百度)

然后我們所用的主要類比如Job/Mapper/Reducer

均來自org.apache.hadoop.mapreduce包下:

所以在API中我們可以看到我們要看到的模板:

是不是方便了許多?所以學習編程多看API。。。。。。

三、MyMapper

package com.henu.mr.wc;import java.io.IOException; import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper;public class MyMapper extends Mapper<Object, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(Object key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer itr = new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}}

是不是又頭疼了?還是老方法API

四、MyReducer?

package com.henu.mr.wc;import java.io.IOException;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer;public class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {//迭代計算private IntWritable result = new IntWritable();public void reduce(Text key, Iterable<IntWritable> values, Context context)throws IOException, InterruptedException {int sum = 0;for (IntWritable val : values) {sum += val.get();}result.set(sum);context.write(key, result);} }

沒錯,我再來說一下!!!

五、將其打jar包

六、啟動虛擬機,啟動就不用說了吧。

嗯。。。

就是

zkServer.sh start

start-all.sh

【注】如果某個節點啟動異常,則單獨啟動,例如resourcemanager

啟動命令:yarn-daemon.sh start resourcemanager

七、將wc.jar使用xftp傳到虛擬機上

【這里說個重要的事,看你文件, ??算了看圖吧!】

是否有文件test.txt

輸出路徑無所謂,會自己創建。并且我們在代碼中有這方面的限制。

Ok!!!!!!!!

?八、將其在虛擬機上運行

?

【注意你的命令】

?

[root@henu1 soft]# hadoop jar wc.jar com.henu.mr.wc.MyWC

?

?結果:

?

?


?

總結

以上是生活随笔為你收集整理的Hadoop MapReduce V2 Yarn——WordCount的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。