千家信息网

MapReduce的基本内容是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章将为大家详细讲解有关MapReduce的基本内容是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、WordCount程序1.1 WordCount源程
千家信息网最后更新 2026年10月31日MapReduce的基本内容是什么

这篇文章将为大家详细讲解有关MapReduce的基本内容是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1、WordCount程序

1.1 WordCount源程序

import java.io.IOException;import java.util.Iterator;import java.util.StringTokenizer;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.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;public class WordCount {    public WordCount() {    }     public static void main(String[] args) throws Exception {        Configuration conf = new Configuration();        String[] otherArgs = (new GenericOptionsParser(conf, args)).getRemainingArgs();        if(otherArgs.length < 2) {            System.err.println("Usage: wordcount  [...] ");            System.exit(2);        }        Job job = Job.getInstance(conf, "word count");        job.setJarByClass(WordCount.class);        job.setMapperClass(WordCount.TokenizerMapper.class);        job.setCombinerClass(WordCount.IntSumReducer.class);        job.setReducerClass(WordCount.IntSumReducer.class);        job.setOutputKeyClass(Text.class);        job.setOutputValueClass(IntWritable.class);         for(int i = 0; i < otherArgs.length - 1; ++i) {            FileInputFormat.addInputPath(job, new Path(otherArgs[i]));        }        FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1]));        System.exit(job.waitForCompletion(true)?0:1);    }    public static class TokenizerMapper extends Mapper {        private static final IntWritable one = new IntWritable(1);        private Text word = new Text();        public TokenizerMapper() {        }        public void map(Object key, Text value, Mapper.Context context) throws IOException, InterruptedException {            StringTokenizer itr = new StringTokenizer(value.toString());             while(itr.hasMoreTokens()) {                this.word.set(itr.nextToken());                context.write(this.word, one);            }        }    }public static class IntSumReducer extends Reducer {        private IntWritable result = new IntWritable();        public IntSumReducer() {        }        public void reduce(Text key, Iterable values, Reducer.Context context) throws IOException, InterruptedException {            int sum = 0;            IntWritableval;            for(Iterator i$ = values.iterator(); i$.hasNext(); sum += val.get()) {                val = (IntWritable)i$.next();            }            this.result.set(sum);            context.write(key, this.result);        }    }}

1.2 运行程序,Run As->Java Applicatiion

1.3 编译打包程序,产生Jar文件

2 运行程序

2.1 建立要统计词频的文本文件

wordfile1.txt

Spark Hadoop

Big Data

wordfile2.txt

Spark Hadoop

Big Cloud

2.2 启动hdfs,新建input文件夹,上传词频文件

cd /usr/local/hadoop/

./sbin/start-dfs.sh

./bin/hadoop fs -mkdir input

./bin/hadoop fs -put /home/hadoop/wordfile1.txt input

./bin/hadoop fs -put /home/hadoop/wordfile2.txt input

2.3 查看已上传的词频文件:

hadoop@dblab-VirtualBox:/usr/local/hadoop$ ./bin/hadoop fs -ls .
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2019-02-11 15:40 input
-rw-r--r-- 1 hadoop supergroup 5 2019-02-10 20:22 test.txt
hadoop@dblab-VirtualBox:/usr/local/hadoop$ ./bin/hadoop fs -ls ./input
Found 2 items
-rw-r--r-- 1 hadoop supergroup 27 2019-02-11 15:40 input/wordfile1.txt
-rw-r--r-- 1 hadoop supergroup 29 2019-02-11 15:40 input/wordfile2.txt

2.4 运行WordCount

./bin/hadoop jar /home/hadoop/WordCount.jar input output

屏幕上会输入大段信息

然后可以查看运行结果:

hadoop@dblab-VirtualBox:/usr/local/hadoop$ ./bin/hadoop fs -cat output/*
Hadoop 2
Spark 2

关于MapReduce的基本内容是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文件 程序 运行 内容 词频 更多 篇文章 不错 实用 信息 大段 屏幕 文件夹 文本 文章 源程序 知识 结果 参考 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 新华互联网科技学院 奇酷互联网络科技 广州宏创互联网科技 佰商互联网科技有限公司 互联网 科技馆 恒银科技与互联网金融 广州市恰铎互联网科技有限公司 开一家科技互联网公司需要多少钱 科技互联网海报 中国互联网有什么科技 广州富喜互联网络科技 上海创道互联网络科技有限公司 上海同邻互联网科技有限公司规模 昆明中奇联合互联网科技 互联网金融运营模式中的金融科技 众联互联网络科技 绵阳真晨互联网科技有限公司 互联网领先科技成果宣传视频 现代科技的标志之一的互联网 河南云网互联网络科技有限公司 互联网科技垄断 互联网科技金融 苏州大垚互联网科技 科技伦理 互联网公司 深圳市运趣互联网科技有限公司 移动互联网科技股 注册互联网科技公司经营范围大全 有人说阿里系是互联网科技企业 上海互联网科技园景观
0