wordcount 代码在hadoop-2.2.0上的ecplise上调试成功的code
来源:互联网 发布:农业数据价值 编辑:程序博客网 时间:2024/05/22 07:47
1 wordcount源码
package org.jediael.hadoopdemo;
import java.io.IOException;
import java.util.StringTokenizer;
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.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class wordcount {
public static class TokenizerMapper extends
Mapper<Object, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public 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);
}
}
}
public static class IntSumReducer extends
Reducer<Text, IntWritable, Text, IntWritable> {
private IntWritable result = new IntWritable();
public void reduce(Text key, Iterable<IntWritable> values,
Context context) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] arg = {"/usr/local/hadoop-2.2.0/input","/usr/local/hadoop-2.2.0/output"};
String[] otherArgs = new GenericOptionsParser(conf, arg)
.getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
}
Job job = new Job(conf, "word count");
job.setJarByClass(wordcount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
之前一直只运行过hadoop-2.2.0 自带的例子程序wordcount,想自己编辑hadoop代码,搞了半天,最后发现原来的代码只需做稍微修改就可以在hadoop上跑,String[] arg = {"/usr/local/hadoop-2.2.0/input","/usr/local/hadoop-2.2.0/output"}; 就是添加它的本地输入路径,并在里边放入输入内容就可以,而本地输出文件夹hadoop会自己建立。当然也可以将文件上传至分布式文件系统中进行运行。
0 0
- wordcount 代码在hadoop-2.2.0上的ecplise上调试成功的code
- ubuntu下在ecplise上实现wordcount的小结
- 用python在hadoop上运行wordcount
- 在windows上用eclipse远程运行hadoop上的wordcount程序出现的问题,求解决
- Windows下的 Eclipse上调试Hadoop代码
- 伪分布式Hadoop系统上的wordCount实现命令
- 如何在eclipse上调试hadoop的笔记
- Hadoop的WordCount代码解析
- Hadoop小兵笔记【三】利用Eclipse将wordcount打包成可以运行在hadoop上的jar包
- IDEA 编译:Saprk 2.2 上的WordCount
- ASP上传代码? 在本机上调试成功,在网络上就不行了
- mapreduce Wordcount输入文件在hdfs上的实例
- 怎样调试部署在emulator上的c代码?
- 怎样调试部署在emulator上的c代码?
- Hadoop在eclipse上实践之一——WordCount
- 自己写wordcount程序在hadoop上运行
- 在mini2440上的移植sqlite3(成功)
- 在模拟器上成功运行的代码在真机上出现FragmentManager对象为空的问题
- flume 案例
- 【Fragment精深系列2】Fragment的生命周期
- Search for a Range
- 分类器的种类
- GridView适配
- wordcount 代码在hadoop-2.2.0上的ecplise上调试成功的code
- 硬编码学习(六)
- C++学习笔记(转)
- C++虚函数(4) - 静态函数能否为虚函数
- 新手报到
- linux中fork()函数的用法详解
- linux 内核调试(dump_stack)
- 变量与标识符学习
- 输出用户列表