您的位置:首页 > 房产 > 建筑 > 可以做网页的软件_品牌形象设计的意义_今天的热搜榜_厦门百度快速优化排名

可以做网页的软件_品牌形象设计的意义_今天的热搜榜_厦门百度快速优化排名

2024/12/26 16:02:44 来源:https://blog.csdn.net/NiNg_1_234/article/details/144630858  浏览:    关键词:可以做网页的软件_品牌形象设计的意义_今天的热搜榜_厦门百度快速优化排名
可以做网页的软件_品牌形象设计的意义_今天的热搜榜_厦门百度快速优化排名

文章目录

  • Hadoop实现WordCount详解
    • 一、引言
    • 二、Hadoop WordCount实现步骤
      • 1、环境搭建
      • 2、编写WordCount程序
        • 2.1、Mapper类
        • 2.2、Reducer类
        • 2.3、驱动类
    • 三、编译与打包
    • 四、运行WordCount程序
    • 五、总结

Hadoop实现WordCount详解

一、引言

在大数据处理领域,WordCount是一个经典的入门级程序,它用于统计文本中每个单词出现的次数。通过Hadoop实现WordCount,我们可以利用Hadoop的分布式计算能力,高效地处理大规模数据集。本文将详细介绍如何使用Hadoop来实现WordCount程序,包括程序的编写、配置和运行。
在这里插入图片描述

二、Hadoop WordCount实现步骤

1、环境搭建

在开始编写WordCount程序之前,我们需要搭建一个Hadoop全分布模式集群。这里直接略过了,如果需要自行百度
在这里插入图片描述

2、编写WordCount程序

2.1、Mapper类

Mapper类负责读取输入的文本数据,并将其分割成单词,然后输出中间键值对。这里,我们将每个单词作为键,值为1。

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;public class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();@Overrideprotected void map(Object key, Text value, Context context) throws IOException, InterruptedException {String[] words = value.toString().split("\\s+");for (String w : words) {word.set(w);context.write(word, one);}}
}
2.2、Reducer类

Reducer类负责接收Mapper输出的中间结果,并汇总每个单词的总频率。

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {private IntWritable result = new IntWritable();@Overrideprotected 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);}
}
2.3、驱动类

驱动类负责设置作业的配置,定义Mapper和Reducer,以及输入输出路径。

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
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 WordCountDriver {public static void main(String[] args) throws Exception {if (args.length != 2) {System.err.println("Usage: WordCount <input path> <output path>");System.exit(-1);}Configuration conf = new Configuration();Job job = Job.getInstance(conf, "word count");job.setJarByClass(WordCountDriver.class);job.setMapperClass(WordCountMapper.class);job.setReducerClass(WordCountReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);FileInputFormat.addInputPath(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

三、编译与打包

编译WordCount.java文件,并将其打包成jar包,以便在Hadoop集群上运行。

bin/hadoop com.sun.tools.javac.Main WordCount.java #将WordCount.java编译成.class文件
jar cf wc.jar WordCount*.class #将.class文件打包成jar包

四、运行WordCount程序

启动Hadoop集群,并提交WordCount作业。

cd /opt/hadoop/hadoop/sbin
start-all.sh

然后,使用hadoop命令提交作业:

hadoop jar wc.jar WordCountDriver /input/path /output/path

五、总结

通过本文的介绍,我们了解了如何使用Hadoop实现WordCount程序。从环境搭建到程序编写,再到作业的提交和运行,每一步都是实现大数据处理的关键。WordCount程序虽然简单,但它是理解Hadoop分布式计算框架的一个很好的起点。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • IDEA运行WordCount程序(详细步骤)
  • Hadoop实现WordCount(从零开始)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com