MapReduce计数程序(自主复习)
1.MyWordCount类
注意:
1.本机+测试,两个注释都放开
2.本机跑集群,要开异构平台为true
3.集群跑,把两个注释都注起来,然后在集群上面跑
package com.littlepage.wc; 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.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat; import java.io.IOException; public class MyWordCount {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
//1.读取配置
Configuration conf=new Configuration(true);
//设定本地环境运行,不进行集群运行
// conf.set("mapreduce.framework.name","local");
//设定异构平台
// conf.set("mapreduce.app-submission.cross-platform","true");
//2.设定Job
Job job=Job.getInstance(conf);
//3.设定Job执行的类
job.setJarByClass(MyWordCount.class);
//4.设定JobName
job.setJobName("SteveYu's word count");
//5.设定输入path
Path infile=new Path("/data/wc/input");
TextInputFormat.addInputPath(job,infile);
//6.设定输出path
Path outfile=new Path("/data/wc/loveloveOutput");
if(outfile.getFileSystem(conf).exists(outfile)) outfile.getFileSystem(conf).delete(outfile,true);
TextOutputFormat.setOutputPath(job,outfile);
//7.设定MapperClass和ReduceClass
job.setMapperClass(WordCountMapper.class);
job.setReducerClass(WordCountReducer.class);
//8.设定输出的Key,Value格式
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
//9.等待程序完成
job.waitForCompletion(true);
}
}
2.WordCountMapper类
作用:
定义一个拆分文本的功能,将Mapper进行拆分成key, value的形式
package com.littlepage.wc; import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper; import java.io.IOException;
import java.util.StringTokenizer; public class WordCountMapper extends Mapper<Object,Text,Text,IntWritable> {
private final static IntWritable one=new IntWritable();
private Text word=new Text(); @Override
protected 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);
}
}
}
3.WordCountReducer类
作用:
进行第二次映射计算
package com.littlepage.wc; 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();
//相同的key为一组 ,这一组数据调用一次reduce
//hello 1 @Override
protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
int sum=;
for (IntWritable val:values) {
sum+=val.get();
}
result.set(sum);
context.write(key,result);
}
}
4.单机跑可能出现的问题
1.hadoop必须解压
2.hadoop必须配置HADOOP_HOME以及环境变量
3.hadoop必须将core-site.xml放进resources文件夹里面,并且文件夹得标识为source文件夹
4.hadoop的bin在windows必须粘贴为windows版本,并且,我们需要把hadoop.dll复制到system32文件夹内,因为system32是存放系统小工具的一个文件夹
MapReduce计数程序(自主复习)的更多相关文章
- MapReduce TopN(自主复习)
1.MyTopN 主程序 package com.littlepage.topn; import org.apache.hadoop.conf.Configuration; import org.a ...
- Hadoop分布环境搭建步骤,及自带MapReduce单词计数程序实现
Hadoop分布环境搭建步骤: 1.软硬件环境 CentOS 7.2 64 位 JDK- 1.8 Hadoo p- 2.7.4 2.安装SSH sudo yum install openssh-cli ...
- [Hadoop in Action] 第4章 编写MapReduce基础程序
基于hadoop的专利数据处理示例 MapReduce程序框架 用于计数统计的MapReduce基础程序 支持用脚本语言编写MapReduce程序的hadoop流式API 用于提升性能的Combine ...
- 第一章 flex单词计数程序
学习Flex&Bison目标, 读懂SQLite中SQL解析部分代码 Flex&Bison简介Flex做词法分析Bison做语法分析 第一个Flex程序, wc.fl, 单词计数程序 ...
- 【Storm】storm安装、配置、使用以及Storm单词计数程序的实例分析
前言:阅读笔记 storm和hadoop集群非常像.hadoop执行mr.storm执行topologies. mr和topologies最关键的不同点是:mr执行终于会结束,而topologies永 ...
- 微信小程序期末复习
过什么六一,复习不完了... 第1章作业 一.单选题(共10题,100.0分) 1以下哪个不是主流的手机操作系统? A.Android B.iOS C.Windows Phone D.Blackber ...
- 运行在YARN上的MapReduce应用程序(以MapReduce为例)
client作用:提交一个应用程序查看一个应用程序的运行状态(通过application master) 第一步:提交MR程序到ResourceManager,ResourceManager为这个应用 ...
- 《Hadoop权威》学习笔记五:MapReduce应用程序
一.API的配置---Configuration类 API的配置:Hadoop提供了专门的API对资源进行配置,Configuration类的实例(在org.apache.hadoop.conf包)包 ...
- 一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序
一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流.反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象.Java序列化(java.io. ...
随机推荐
- webDriver各版本对应
chromeDriver http://npm.taobao.org/mirrors/chromedriver/ http://chromedriver.storage.googleapis.com/ ...
- linux (一)
一.文件目录 cd 目录进出 pwd 查看路径 ls:ll 查看目录 mkdir : mkdir -p app/test 创建目录 touch 创建文件 rm :rm -r 递归 -f 强制 mv ...
- ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file
完整的错误信息如下: ggsci: error while loading shared libraries: libnnz11.so: cannot open shared object file: ...
- Apache Kafka系列(六)客制化Serializer和Deserializer
已经迁移,请移步:http://www.itrensheng.com/archives/apache-kafka-repartition
- jquery 教程网
- Linux日志筛选命令
(1)Linux目录操作命令 cd ..退出当前目录,返回上一级目录:cd / 退出当前目录,返回根目录: mkdir命令用于创建一个新的目录:rmdir命令功能删除指定的空目录. (2)Linux筛 ...
- docker容器和宿主机之间复制文件
https://blog.csdn.net/u012416928/article/details/55049063 https://blog.csdn.net/u011596455/article/d ...
- char* a = "abc" 和 char a[] = "abc" 之间的区别
char* a = "abc"; 声明了一个字符类型的指针a,并为它赋值初始值为"abc",a的值是字符串"abc"的首地址[第一个字符的地 ...
- Java编程思想—八皇后问题(数组法、堆栈法)
Java编程思想-八皇后问题(数组法.堆栈法) 实验题目:回溯法实验(八皇后问题) 实验目的: 实验要求: 实验内容: (1)问题描述 (2)实验步骤: 数组法: 堆栈法: 算法伪代码: 实验结果: ...
- tomcat报错解决方法
tomcat报错如 关闭被占用的进程 解决方法:cmd进入控制台,输入命令netstat -ano|findstr 8005 (什么端口号被占用就输入什么号),回车 发现是进程2044占用了这 ...