栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

windows+idea运行hadoop demo(亲测)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

windows+idea运行hadoop demo(亲测)

下载hadoop:Apache Hadoop

 下载下来之后以管理员身份解压:或者使用7-zip

配置环境变量:

  




    4.0.0

    com.xuan
    hadoopdemo
    1.0-SNAPSHOT

    hadoopdemo
    
    http://www.example.com

    
        UTF-8
        1.8
        1.8
    

    
        
            junit
            junit
            4.11
            test
        
        
            org.apache.hadoop
            hadoop-common
            2.5.2
        
        
            org.apache.hadoop
            hadoop-hdfs
            2.5.2
        
        
            org.apache.hadoop
            hadoop-client
            2.5.2
        
        
            junit
            junit
            4.11
            test
        
    

下载:winutils

  

package com.hadoop;


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 java.io.IOException;
import java.util.StringTokenizer;

public class WordCount {
    public static class TokenizerMapper extends Mapper {

        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();

        @Override
        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();

        @Override
        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();
        Job job = Job.getInstance(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("H:\yingjian\hadoop\hadoop-2.6.0-cdh5.9.3\data\file1.txt"));
        FileOutputFormat.setOutputPath(job, new Path("H:\yingjian\hadoop\hadoop-2.6.0-cdh5.9.3\data\out"));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

运行程序可能找不到job:hadoop.dll放到C:WindowsSystem32下面

 file1.txt

q
w
ww
q
we
qwe
as
q
w
ww
q
w
we

点击运行:

 提示错误:

Error: JAVA_HOME is incorrectly set.

H:yingjianhadoophadoop-2.10.1etchadoophadoop-env

JAVA_HOME目录是C:Program FilesJavajdk1.8.0_121,因为Program Files中存在空格,所以出现错误,只需要用

PROGRA~1代替Program Files即可,即改为C:PROGRA~1Javajdk1.8.0_121

 

记录存在一个问题:

上面的output输出目录为空,找了一晚上资料,最后把idea重启了一下突然出来了,我操

!! 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776023.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号