Hadoop学习笔记(七)---简单WorldCount程序的实现
来源:互联网 发布:如何网络办理出国签证 编辑:程序博客网 时间:2024/05/23 01:24
1.eclipse创建一个新的java project,记得引入hadoop的jar包。
2.编写程序如下:
import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;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;public class WordCount { static final String INPUT_DIR = "hdfs://172.21.15.189:9000/input"; static final String OUTPUT_DIR = "hdfs://172.21.15.189:9000/output"; public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Path path = new Path(OUTPUT_DIR); Job job = new Job(conf, "WordCount"); FileInputFormat.setInputPaths(job, INPUT_DIR); //设置输入路径 FileOutputFormat.setOutputPath(job, path); //设置输出路径 job.setMapperClass(MyMapper.class); //设置自定义的mapper类 job.setReducerClass(MyReducer.class); //设置自定义的reduce类 job.setOutputKeyClass(Text.class); //设置输出的key的类型 job.setOutputValueClass(LongWritable.class); //设置输出的value类型 job.waitForCompletion(true); //开始执行 } /** * 自定义的map类 * @author Gary * */ static class MyMapper extends Mapper<LongWritable, Text, Text, LongWritable> { @Override protected void map(LongWritable k1, Text v1, Mapper<LongWritable, Text, Text, LongWritable>.Context context) throws IOException, InterruptedException { String[] words = v1.toString().split(" "); for(String word : words) { context.write(new Text(word), new LongWritable(1)); } } } /** * 自定义的reduce类 * @author Gary * */ static class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable> { @Override protected void reduce(Text k2, Iterable<LongWritable> v2s, Reducer<Text, LongWritable, Text, LongWritable>.Context context) throws IOException, InterruptedException { long times = 0L; for(LongWritable longWritable : v2s) { times += longWritable.get(); } context.write(k2, new LongWritable(times)); } }}
对于运行时出现权限问题报错:
请参考:http://tech.ddvip.com/2014-06/1403068615211215.html
0 0
- Hadoop学习笔记(七)---简单WorldCount程序的实现
- Hadoop学习笔记 --- MapReduce实现WorldCount原理解析
- Hadoop WorldCount程序
- Hadoop学习笔记(七)
- hadoop学习4--MapReduce及官方WorldCount分析
- Hadoop学习笔记(1):WordCount程序的实现与总结
- C语言程序学习(七)笔记
- hadoop生态系统学习之路(七)impala的简单使用以及与hive的区别
- WorldCount程序分析
- worldcount程序java版本
- javaweb学习笔记(七)-简单购物功能实现
- Hadoop HDFS源码学习笔记(七)--DFSInputStream -- openInfo
- hadoop学习笔记(七)reduce在16%暂停
- C# Hadoop学习笔记(七)—C#的云计算框架借鉴(下)
- spark: scala实现worldcount
- 网络编程学习笔记二(实现一个基于简单TCP的用户注册程序)
- 使用Hadoop运行WorldCount示例
- Hadoop学习笔记七之 job.setNumReduceTasks
- linux syslogd服务
- pom.xml中各个标签 的意思
- HDU 1496 (第一道hash附带讲解)
- sublime text3 安装
- Linux的sysctl 命令参数详解
- Hadoop学习笔记(七)---简单WorldCount程序的实现
- java 多态的知识点总结
- 移动硬盘出现 文件目录损坏且无法读取 解决方法教程(一)
- hdu 1203 I NEED A OFFER!(01背包)
- POJ 1328 南阳oj 287 Radar【区间选点问题】
- 15第十三周项目二——形状类族中的纯虚函数
- iOS通过CAShapeLayer和UIBezierPath画环形进度条
- reshape in numpy
- C语言 顺序栈