当前位置:   article > 正文

大数据:Hadoop入门经典案例wordcount单词统计Java代码实现_java实现wordcount

java实现wordcount

job.setOutputKeyClass(Text.class);

FileInputFormat.setInputPaths(job, new Path(args[0]));

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

System.out.println(job.waitForCompletion(true) ? “运行成功” : “运行失败”);

}

public static void main(String[] args) {

try {

WordCountMain wordCountMain = new WordCountMain(args);

} catch (Exception e) {

e.printStackTrace();

}

}

}

map类:

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Mapper;

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

@Override

protected void map(LongWritable key, Text value, Context context) {

String line = value.toString();

String[] words = line.split(" ");

for (String word : words) {

// 将单词作为key,将次数1作为value。

try {

context.write(new Text(word), new LongWritable(1));

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

reducer类:

import org.apache.hadoop.io.LongWritable;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Reducer;

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

@Override

protected void reduce(Text key, Iterable values, Context context) {

int count = 0;

for (LongWritable value : values) {

count += value.get();

}

try {

context.write(key, new LongWritable(count));

} catch (Exception e) {

e.printStackTrace();

}

}

}

3,在IntelliJ IDEA中直接导出可运行的Java的jar包(具体方法见文章 https://zhangphil.blog.csdn.net/article/details/99434450),注意,在Hadoop2.8.3,Windows 10,64位环境下,编译出的jar包里面有两个文件夹:META-INF和license,如果直接运行将导致失败。需要用解压缩工具打开这个jar包,删掉META-INF和license这两个文件夹,如图:

如果不删除这两个文件夹,在jar包运行时候,会抛出错误导致运行失败。

4,通过start-all命令,启动Hadoop,如附录1中那样。只不过这次使用的jar包不是Hadoop示例代码中的jar包,而是我自己编写的Java代码:

hadoop jar E:/code/IdeaProjects/bigdata/out/artifacts/bigdata_jar/bigdata_jar.jar WordCountMain /test_dir/myfile /test_dir/result

bigdata_jar.jar包就是上面Java代码在第三步IntelliJ IDEA中生成的jar包。

运行后输出的结果和附1相同。
附:
1、命令行方式使用Hadoop自带的word count单词统计jar包统计字符单词数

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/731448
推荐阅读
相关标签
  

闽ICP备14008679号