基于mapreduce的两个简单例子
来源:互联网 发布:鹰身女郎知乎 编辑:程序博客网 时间:2024/06/06 23:54
Mapreudce开发:
(对路由数据进行过滤,只保留想要的几项。只有map没有reduce)
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public class Map extends Configured implements Tool {
public static class Map1 extends Mapper<LongWritable,Text,NullWritable,Text>{
enum Couter{
LINESKIP,//计数器
}
public void map(LongWritable key,Text value,Context context)throws IOException,InterruptedException{
String line=value.toString();//读取源数据
try{
String [] linespilt=line.split(" ");
String m=linespilt[0];
String t=linespilt[1];
String mac=linespilt[4];
String str=m+" "+t+" "+" "+mac;
Text tout=new Text(str);
context.write(NullWritable.get(), tout); //key \t value
}catch(java.lang.ArrayIndexOutOfBoundsException e)
{
context.getCounter(Couter.LINESKIP).increment(1);//出错行加1
return;
}
}
}
public int run(String[] args)throws Exception{
Configuration conf=getConf();
Job job=new Job(conf,"lala");//作业名
FileInputFormat.addInputPath(job,new Path("hdfs://192.168.146.130:9000/user/hadoop/input/mptrys"));
FileOutputFormat.setOutputPath(job,new Path("hdfs://192.168.146.130:9000/mptryd"));
job.setMapperClass(Map1.class);//map的class
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(NullWritable.class);//指定输出key
job.setOutputValueClass(Text.class);//指定输出的Value
job.waitForCompletion(true);
return job.isSuccessful()?1:0;
}
public static void main(String args[])throws Exception{
int res=ToolRunner.run(new Configuration(),new Map(), args);
System.exit(res);
}
}
倒排:
package trymr2;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.mapreduce.Mapper.Context;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
public class test2 extends Configured implements Tool {
public static class Map1 extends Mapper<LongWritable,Text,Text,Text>{
enum Couter{
LINESKIP,
}
public void map(LongWritable key,Text value,Context context)throws IOException,InterruptedException{
String line=value.toString();
try{
String [] linespilt=line.split(" ");
String calf=linespilt[0];
String calt=linespilt[1];
Text tcalf=new Text(calf);
Text tcalt=new Text(calt);
context.write(tcalt, tcalf);
}catch(java.lang.ArrayIndexOutOfBoundsException e)
{
context.getCounter(Couter.LINESKIP).increment(1);
return;
}
}
}
public static class Reduce extends Reducer<Text,Text,Text,Text>{
enum Couter{
LINESKIP,
}
public void reduce(Text key,Iterable<Text> value,Context
context)throws IOException,InterruptedException{
String val;
String out="";
for(Text vale:value){
val=vale.toString();
out+=val+"|";
}
//Text a=new Text(out);
context.write(key, new Text(out));
}
}
public int run(String[] args) throws Exception{
Configuration conf=getConf();
Job job=new Job(conf,"lala1");
FileInputFormat.addInputPath(job,new Path
("hdfs://192.168.146.130:9000/user/hadoop/input/lilanmr2"));
FileOutputFormat.setOutputPath
(job,new Path("hdfs://192.168.146.130:9000/mptryd12"));
job.setMapperClass(Map1.class);
job.setReducerClass(Reduce.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.waitForCompletion(true);
return job.isSuccessful()?1:0;
}
public static void main(String args[])throws Exception{
int res=ToolRunner.run(new Configuration(),new test2(), args);
System.exit(res);
}
}
- 基于mapreduce的两个简单例子
- MapReduce 的简单例子 WordCount的实现
- Hadoop1.x 的MapReduce 简单例子WordCount
- Hadoop--两个简单的MapReduce程序
- Hadoop--两个简单的MapReduce程序
- Hadoop--两个简单的MapReduce程序
- win32 socket的两个简单的例子
- 先进先出的两个简单例子
- Shell 编程的两个简单小例子
- Java 多线程编程两个简单的例子
- 嵌套循环的两个简单例子!!!!
- mongodb mapreduce 的例子
- MapReduce运行的例子
- 基于EJB3的一个简单例子
- 基于Spring-SpringMVC-Mybatis的简单例子
- 基于maven的openjpa简单例子
- 基于Socket简单的客户端-服务端例子
- MapReduce简单实现基于物品的协同过滤算法
- BZOJ 2393 浅谈题目性质深度挖掘及容斥原理DFS写法
- day14
- Y_Util工具类
- C++单链表中删除指定范围内的元素
- day15
- 基于mapreduce的两个简单例子
- 10-14-am-C++页游服务端面试题
- 3-java学习笔记
- Quartz教程 第4课 Trigger详解
- 下拉菜单查询
- Codeforces883E-Field of Wonders
- 开灯问题
- day16
- CentOS6.5 MySQL-读写分离