hadoop MapReduce例子
来源:互联网 发布:vb登录界面模板下载 编辑:程序博客网 时间:2024/06/05 18:17
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;public class WcMapper extends Mapper<LongWritable, Text, Text, IntWritable>{ /* * 每次调用map方法会传入split 中的一行数据 * key 该行数据所在文件的位置下标 * value 该行数据 */ @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { // TODO Auto-generated method stub StringTokenizer st = new StringTokenizer(value.toString()); while(st.hasMoreTokens()){ context.write(new Text(st.nextToken()), new IntWritable(1)); } }}
该过程对应这个阶段,其中其map方法是可控的
import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class WcReducer extends Reducer<Text, IntWritable, Text, IntWritable>{ /* *reduce 阶段, *key 键值,传入 *iterable 传入的值,同一键值下有多个 */ @Override protected void reduce(Text key, Iterable<IntWritable> iterable, Context contex) throws IOException, InterruptedException { int sum = 0; for(IntWritable i:iterable){ sum++; } contex.write(key, new IntWritable(sum)); }}
对应下图阶段
程序的main入口
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;public class JobRun { public static void main(String[] args) { Configuration configuration = new Configuration(); configuration.set("mapred.job.tracker", "192.168.6.132:9001");//配置mapred.job.tracker configuration.set("fs.default.name", "192.168.6.132:9000");//配置fs.default.name configuration.set("mapred.jar", "C:/Users/gmr/Desktop/wc.jar");//配置jar文件位置,就不用特地移到到服务器上跑,程序自动转移 try { //下面设置程序的各个执行及输入输出的文件模块 Job job = new Job(configuration);// job.setJarByClass(JobRun.class);//设置程序执行入口 job.setMapperClass(WcMapper.class);//设置mapper的执行类 job.setReducerClass(WcReducer.class);//设置reduce的执行类 job.setMapOutputKeyClass(Text.class);//设置输出的键的类型 job.setMapOutputValueClass(IntWritable.class);//设置输出的值的类型// job.setNumReduceTasks(1);//设置reduce任务的个数,默认就是一,可不写 FileInputFormat.addInputPath(job, new Path("/opt/usr/input/wc"));//设置文件输入目录,path里面放目录,不是文件 FileOutputFormat.setOutputPath(job, new Path("/opt/usr/output/wc"));//设置输出目录 System.exit(job.waitForCompletion(true)?0:1);//等待job任务执行完成 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
0 0
- Hadoop MapReduce 编写例子
- hadoop mapreduce 例子
- hadoop MapReduce例子
- Hadoop-MapReduce-TeraSort-大数据排序例子
- hadoop — MapReduce例子 (求平均值)
- 学习Hadoop MapReduce与WordCount例子分析
- hadoop mapreduce统计的小例子
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- Hadoop MapReduce执行过程详解(带hadoop例子)
- hadoop基础----hadoop实战(五)-----myeclipse开发MapReduce---WordCount例子---解析MapReduce的写法
- 一个介绍hadoop中MapReduce原理的通俗易懂的例子
- hadoop怎样创建 mapreduce项目简易例子教程
- Hadoop mapreduce 数据去重 数据排序小例子
- helloworld背后发生了什么?(CSAPP笔记2)
- fdisk -l可以查看有那些U盘设备。mount命令可以看设备挂到了哪个目录
- C++primer学习笔记-----4.4赋值运算符
- commons pool2对象池的使用
- python3 print & DataFrame 170424
- hadoop MapReduce例子
- 二维数组的查找
- java实现文本分类中卡方特征选择
- java架构师之路:JAVA程序员必看的15本书(转)
- hdu2062 Subset sequence
- 浅谈Android 6.0运行时权限理解
- 用node搭建富文本编辑器ueditor服务端环境
- 火狐浏览器-调试工具的使用
- 图片压缩方案预研及结果