windows下Eclipse搭建MapReduce开发环境

准备工具

  • Eclipse(本人使用的是4.4.2)
  • hadoop-eclipse-plugin-2.6.0(eclipse插件)
  • hadoop-common-2.2.0-bin-master(windows下远程调用hadoop使用)

工具链接: http://pan.baidu.com/s/1i474ko1 密码: naph

配置步骤

  1. 将插件hadoop-eclipse-plugin-2.6.0.jar放入到Eclipse安装目录plugins文件夹下并重启Eclipse;
  2. 将hadoop-common-2.2.0-bin-master.zip解压到合适文件夹中,并将解压的目录配置到环境变量中,主要配置变量参照如下;
    • HADOOP_HOME=E:\develop_tools\hadoop-common-2.2.0-bin-master
    • PATH=%PATH%;E:\develop_tools\hadoop-common-2.2.0-bin-master\bin
  3. 打开Eclipse选择windows->show view->other打开mapreduce tools视图
    这里写图片描述
  4. 点击右上方添加按钮进行hadoop相关位置配置,根据实际情况填写
    这里写图片描述
  5. 如果填写正确可在Project Explorer中DFS Locations查看hdfs文档结构
    这里写图片描述
  6. 运行WordCount程序验证,附上代码。
package com.doolin;

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); 
  } 
 } 

 public static void main(String[] args) throws Exception { 

  Configuration conf = new Configuration(); 
  String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs(); 
  if (otherArgs.length != 2) { 
   System.err.println("Usage: wordcount <in> <out>"); 
   System.exit(2); 
  } 

  Job job = Job.getInstance(conf); 
  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); 
 } 
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值