一、在集群创好文件夹,并上传好相应的文件

输入hdfs dfs直接回车即可出现操作提示

(1)创建目录

hdfs dfs -mkdir /wordcount

(2)创建文件input和output目录

hdfs dfs mkdir /wordcount/input
hdfs dfs mkdir /wordcount/output

(3)上传本地TXT文件到集群

hdfs dfs -put text1.txt /wordcount/input

二、打开eclipse编写MR程序代码

不知道如何接入集群的同学可以参照博客,将eclipse接入hadoop:https://blog.csdn.net/qq_38741971/article/details/88876815

(1)新建map工程

(2)编写Mapper类型

package demo;import java.io.IOException;
import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;/*** map阶段<KEYIN, VALUEIN, KEYOUT, VALUEOUT> ---> <K1, V1, K2, V2>* 分析:text1.txt*     hello world      --><k1,v1>=<0,"hello world">--><k2,v2>==<"hello",1>,<"world",1>*      hello hadoop     --><k1,v1>=<11,"hello hadoop">--><k2,v2>==<"hello",1>,<"hadoop",1>*/
public class WordMapper extends Mapper<LongWritable,Text,Text,IntWritable> {Text word = new Text();IntWritable one = new IntWritable(1);/*** map函数:处理行,有几行就处理几行,上述案例会调用两次*/@Overrideprotected void map(LongWritable key, Text value,Context context)throws IOException, InterruptedException {//将每行数据按空格分割开StringTokenizer itr = new StringTokenizer(value.toString()," ");while (itr.hasMoreElements()) {word.set(itr.nextToken());context.write(word, one);}}
}

(3)编写Reduce类型

package demo;import java.io.IOException;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
/*** reduce阶段:<KEYIN, VALUEIN, KEYOUT, VALUEOUT>==<k2,v2,k3,v3>==<Text, IntWritable, Text, IntWritable>* 分析:reduce接收来自map阶段输出数据<k2,v2>=<"hello",1>,进到reduce函数后,数据变成如下内容:*       <"hello",[1,1]>,<"world",[1]>....(shuffle阶段)重点知识**/
public class WordReduce extends Reducer<Text, IntWritable, Text, IntWritable>{IntWritable result = new IntWritable();@Overrideprotected void reduce(Text k2, Iterable<IntWritable> v2,Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable v : v2) {sum = sum + v.get();}result.set(sum);context.write(k2, result);}}

(4)编写Driver类型

package demo;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;/*** Driver 驱动类* **/
public class WordCount {public static void main(String[] args) {try {Configuration conf = new Configuration();System.setProperty("HADOOP_USER_NAME", "dodo");Job job = Job.getInstance(conf);job.setJobName("max air");//创建job作业,需要conf,给作业命名"word count"//设置通过一个类的全路径,加载寻找相应的jar包job.setJarByClass(WordCount.class);//设置job所需的mapper类job.setMapperClass(WordMapper.class);//job.setCombinerClass(cls);//设置job所需的reducer类job.setReducerClass(WordReduce.class);//设置job作业的输出类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);//为MR的job添加数据输入路径FileInputFormat.addInputPath(job, new Path("hdfs://192.168.81.128:9000/wordcount/input/text*.txt"));//为MR的job设置数据输出路径FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.81.128:9000/wordcount/output/out"));//提交job到集群,并且等待完成try {System.exit(job.waitForCompletion(true)?1:0);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}}
}

如果想从window本地读取文件,同时跑完MR程序,文件落到window可以如下设置

(5)运行,执行成功出现下图

未成功执行的同学可以参照博客,将eclipse接入hadoop,并解决并且避免一些excption:https://blog.csdn.net/qq_38741971/article/details/88876815

编写MapReduce程序,实现WordCount相关推荐

  1. 超详细MapReduce程序实现WordCount案例

    一.案例准备 1.首先在本地创建两个文件,即文件A和文件B touch A B 2.在文件A和文件B中分别添加以下内容 A: China is my motherland I love China B ...

  2. 如何在Hadoop上编写MapReduce程序

    1. 概述 1970年,IBM的研究员E.F.Codd博士在刊物<Communication of the ACM>上发表了一篇名为"A Relational Model of ...

  3. 我的第一个MapReduce程序(WordCount)

    万事开头难!长途从第一步开始!MapReduce编程也一样! 下面是本人编写的第一个MapReduce程序以及个人的一些理解! 准备条件: 1.安装hadoop 2.工具:eclipse(已经安装了h ...

  4. 【Hadoop】伪分布式安装---MapReduce程序运行到YARN上,编写MapReduce程序---HDFS yarn

    在我的虚拟机(Linux)上安装的Hadoop是2.7.3版本的,安装过程可以参考这个网站,也可以下载. http://hadoop.apache.org/docs/r2.7.6/hadoop-pro ...

  5. hadoop jar包_Hadoop学习之路(5)Mapreduce程序完成wordcount

    程序使用的测试文本数据: Dear RiverDear River Bear Spark Car Dear Car Bear CarDear Car River Car Spark Spark Dea ...

  6. 编写MapReduce程序计算平均分

    计算某小学学生的期末考试成绩的平均分 文章目录 一.准备数据 1.学生的三科成绩 二.编写程序 1.完整代码 2.启动Hadoop 3.上传3个txt文件 4.在eclipse中运行 5.查看最终结果 ...

  7. 编写MapReduce程序,统计每个买家收藏商品数量,实现统计排序功能

    实验材料及说明 在Ubuntu系统的/学号(每个人用自己的学号)/salesInfo目录下,有买家的购买记录文件Sales,该文件记录了买家的id,购买商品的id以及购买日期,文件为名为Sales.S ...

  8. python hadoop wordcount_Hadoop之wordcount实例-MapReduce程序

    实验目的 利用搭建好的大数据平台 Hadoop,对 HDFS 中的文本文件进行处理,采用 Hadoop Steaming 方式,使用 Python 语言实现英文单词的统计功能,并输出单词统计结果. 实 ...

  9. Hadoop详解(三)——MapReduce原理和执行过程,远程Debug,Writable序列化接口,MapReduce程序编写

    MapReduce概述 MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和Re ...

  10. hadoop的python框架指南_Python之——用Mrjob框架编写Hadoop MapReduce程序(基于Hadoop 2.5.2)...

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/79056120 一.环境准备想了解如何使用原生Python编写MapReduce程序 ...

最新文章

  1. SIGPIPE导致cronttab和shell脚本等工作异常
  2. operator did not match Pytorch‘s Interpolation until opset 11
  3. python写一个类方法_Python基础|类方法的强制重写与禁止重写
  4. gerrit的使用和配置
  5. 什么是python编程例子_案例详解:优化Python编程的4个妙招
  6. 火线妹在线求偶,想找高质量男朋,粉丝:有没有绯闻心里没数?
  7. java拾遗录(一)
  8. oracle某些服务在有其他服务,oracle 监听无法启动,出现某些服务再未由其他服务或程序使用时自动停止。...
  9. java小编程----电话号码组合
  10. apache Storm学习之二-基本概念介绍
  11. python图片分类毕业设计成果报告书_毕业设计成果报告书模板.doc
  12. c语言long的格式字符串,时间字符串和long类型之间的转换
  13. 富勒wms系统里的定时器id_仓储、运输配送供应链管理系统解决方案以及应用领域区别...
  14. 坚果pro2刷回官方_锤子坚果Pro2刷魔趣、刷回官方踩坑记
  15. 8. 无线体内纳米网:基于蓝牙LE接口的数字ID系统
  16. python点击按钮后跳到另一个页面_js点击button按钮跳转到另一个新页面
  17. 大韩航空如何成为一流航空——等级文化与称呼的改变
  18. CUDA安装教程及调试:本机win10+vs2013+NVIDIA GeForce GTX 1050Ti
  19. dsoframer-在线编辑office文档,一款开源的由微软提供
  20. vmware加速方法总结

热门文章

  1. 编程题目:PAT 1006. 换个格式输出整数 (15)
  2. Team Project 设想 -- 基于用户信息的学术搜索
  3. Class的三种构造方法
  4. 拓端tecdat|R语言GJR-GARCH和GARCH波动率预测普尔指数时间序列和Mincer Zarnowitz回归、DM检验、JB检验
  5. 拓端tecdat:Python集成学习:自己编写构建AdaBoost分类模型可视化决策边界及sklearn包调用比较
  6. 操作系统 生产者消费者问题解释
  7. 操作系统数据结构知识点总结1
  8. 珍爱网html模板,python爬虫基础实战:爬取珍爱网征婚女士信息,爬取Discuz论坛发帖和回帖代码案例...
  9. 【Python】@ 操作符
  10. hyperparameter_hunter 超参数优化模块实践