最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

eclipse中开发Hadoop2.x的Map/Reduce项目

来源:动视网 责编:小采 时间:2020-11-09 13:13:54
文档

eclipse中开发Hadoop2.x的Map/Reduce项目

eclipse中开发Hadoop2.x的Map/Reduce项目:本文演示如何在Eclipse中开发一个Map/Reduce项目: 1、环境说明 Hadoop2.2.0 EclipseJuno SR2 Hadoop2.x-eclipse-plugin 插件的编译安装配置的过程参考:http://www.micmiu.com/bigdata/hadoop/hadoop2-x-eclips
推荐度:
导读eclipse中开发Hadoop2.x的Map/Reduce项目:本文演示如何在Eclipse中开发一个Map/Reduce项目: 1、环境说明 Hadoop2.2.0 EclipseJuno SR2 Hadoop2.x-eclipse-plugin 插件的编译安装配置的过程参考:http://www.micmiu.com/bigdata/hadoop/hadoop2-x-eclips

本文演示如何在Eclipse中开发一个Map/Reduce项目: 1、环境说明 Hadoop2.2.0 Eclipse?Juno SR2 Hadoop2.x-eclipse-plugin 插件的编译安装配置的过程参考:http://www.micmiu.com/bigdata/hadoop/hadoop2-x-eclipse-plugin-build-install/ 2、新建MR工程 依次

eclipse-mr-01本文演示如何在Eclipse中开发一个Map/Reduce项目: 1、环境说明
  • Hadoop2.2.0
  • Eclipse?Juno SR2
  • Hadoop2.x-eclipse-plugin 插件的编译安装配置的过程参考:http://www.micmiu.com/bigdata/hadoop/hadoop2-x-eclipse-plugin-build-install/
  • 2、新建MR工程 依次点击 File →?New →?Ohter... ?选择 “Map/Reduce Project”,然后输入项目名称:micmiu_MRDemo,创建新项目: eclipse-mr-01 eclipse-mr-02 3、创建Mapper和Reducer 依次点击?File →?New →?Ohter... 选择Mapper,自动继承Mapper eclipse-mr-03 eclipse-mr-04 创建Reducer的过程同Mapper,具体的业务逻辑自己实现即可。 本文就以官方自带的WordCount为例进行测试:
    package com.micmiu.mr;
    /**
     * Licensed to the Apache Software Foundation (ASF) under one
     * or more contributor license agreements. See the NOTICE file
     * distributed with this work for additional information
     * regarding copyright ownership. The ASF licenses this file
     * to you under the Apache License, Version 2.0 (the
     * "License"); you may not use this file except in compliance
     * with the License. You may obtain a copy of the License at
     *
     * http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    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{
     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 {
     private IntWritable result = new IntWritable();
     public void reduce(Text key, Iterable 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  ");
     System.exit(2);
     }
     //conf.set("fs.defaultFS", "hdfs://192.168.6.77:9000");
     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);
     }
    }
    4、准备测试数据 micmiu-01.txt:
    Hi Michael welcome to Hadoop 
    more see micmiu.com
    micmiu-02.txt:
    Hi Michael welcome to BigData
    more see micmiu.com
    micmiu-03.txt:
    Hi Michael welcome to Spark 
    more see micmiu.com
    把 micmiu 打头的三个文件上传到hdfs:
    micmiu-mbp:Downloads micmiu$ hdfs dfs -copyFromLocal micmiu-*.txt /user/micmiu/test/input
    micmiu-mbp:Downloads micmiu$ hdfs dfs -ls /user/micmiu/test/input
    Found 3 items
    -rw-r--r-- 1 micmiu supergroup 50 2014-04-15 14:53 /user/micmiu/test/input/micmiu-01.txt
    -rw-r--r-- 1 micmiu supergroup 50 2014-04-15 14:53 /user/micmiu/test/input/micmiu-02.txt
    -rw-r--r-- 1 micmiu supergroup 49 2014-04-15 14:53 /user/micmiu/test/input/micmiu-03.txt
    micmiu-mbp:Downloads micmiu$
    5、配置运行参数 Run As →?Run Configurations… ,在Arguments中配置运行参数,例如程序的输入参数: eclipse-mr-05 6、运行 Run As -> Run on Hadoop ,执行完成后可以看到如下信息: eclipse-mr-06 到此Eclipse中调用Hadoop2x本地伪分布式模式执行MR演示成功。 ps:调用集群环境MR运行一直失败,暂时没有找到原因。 —————– ?EOF?@Michael Sun?—————–

    文档

    eclipse中开发Hadoop2.x的Map/Reduce项目

    eclipse中开发Hadoop2.x的Map/Reduce项目:本文演示如何在Eclipse中开发一个Map/Reduce项目: 1、环境说明 Hadoop2.2.0 EclipseJuno SR2 Hadoop2.x-eclipse-plugin 插件的编译安装配置的过程参考:http://www.micmiu.com/bigdata/hadoop/hadoop2-x-eclips
    推荐度:
    标签: 开发 项目 map
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top