安装Hadoop系统 — 新建MapReduce项目

1、新建MR工程

依次点击 File → New → Ohter…  选择 “Map/Reduce Project”,然后输入项目名称:mrdemo,创建新项目:

2、(这步在以后的开发中可能会用到,但是现在不用,现在直接新建一个class文件即可)创建Mapper和Reducer
依次点击 File → New → Ohter… 选择Mapper,自动继承Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT>

创建Reducer的过程同Mapper,具体的业务逻辑自己实现即可。

3、新建一个class文件,包名为com.mrdemo,类名为WordCount,按finish。

4、编写map函数、reduce函数和主函数。本文就以官方自带的WordCount为例进行测试(将下面的源码复制到eclipse中):

package com.mrdemo;

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

5、准备测试数据。

在hdfs中新建一个input01文件夹,然后将/home/hadoop/Documents文件夹下新建的hello文件上传到hdfs中的input01文件夹中。

测试数据:

hello world!
hello hadoop
jobtracker
maptracker
reducetracker
task
namenode
datanode
block
beautiful world
hadoop:
HDFS
MapReduce

[email protected]:~$ hadoop fs -mkdir input01

[email protected]:~$ cd /home/hadoop/Documents

[email protected]:~/Documents$ hadoop fs -copyFromLocal hello input01

hdfs://localhost:9000/user/yyq/input01
hdfs://localhost:9000/user/yyq/output01

6、配置运行参数
Run As → Run Configurations… ,在Arguments中配置运行参数,例如程序的输入参数:

7、运行
Run As -> Run on Hadoop ,执行完成后可以看到如下信息:

到此Eclipse中调用Hadoop-1.0.3本地伪分布式模式执行MR演示成功。

参考博客:

http://www.aboutyun.com/forum.php?mod=viewthread&tid=7541&

时间: 2024-10-13 16:06:52

安装Hadoop系统 — 新建MapReduce项目的相关文章

安装单机Hadoop系统(完整版)——Mac

啊啊啊,一到了这种实践或者安装什么东西的时候就从——心理上到生理上排斥!!吴老师说的对,老师们已经对我们降低了很低要求,不能自己再次自甘堕弱啊!! 于是,在这个阴雨绵绵的下午,没有睡午觉的我带着一双惺忪的眼睛坐在了电脑前,赶走男友,泡上清茶,摸摸已是略显油光的额头(还真是越来越像女汉纸了呢,笑cry),,奋斗啊啊啊啊!!%>_<% 1.课程回顾. 1.1 Hadoop系统运行的软件系统:Linux操作系统(小红帽或Ubuntu).SSH(Secure Shell主要用于远程管理Hadoop节点

Ubuntu安装eclipse,编写mapreduce,免编译hadoop-eclipse插件

原地址:http://blog.csdn.net/coolcgp/article/details/43448135,做一些更改和补充 第一,Ubuntu软件中心安装eclipse 第二,将hadoop-eclipse-plugin-1.2.1.jar复制到eclipse安装目录下的插件目录/usr/lib/eclipse/plugins下(如果不知道eclipse的安装目录,终端输入whereis eclipse查找. )如果默认安装,直接输入下一条命令: sudo cp hadoop-ecli

nodejs备忘总结(一) -- node和express安装与配置,新建简单项目(附安装配置过程中遇到问题的解决方法)

安装node 本文以安装node_v8.9.0为例(win10环境),下载node-v8.9.0-x64.msi插件 下载后,安装,安装目录默认为C:\Program Files\nodejs 配置环境变量,系统变量->path,添加“C:\Program Files\nodejs\” 运行cmd,输入node -v C:\Windows\system32>node -v v8.9.0 安装express 找到node安装目录C:\Program Files\nodejs,命令行运行 C:\P

【Hadoop】在Ubuntu系统下安装Hadoop单机/伪分布式安装

Ubuntu 14.10 前方有坑: 由于之前的分布式系统电脑带不动,所以想换一个伪分布式试一试.用的是Virtualbox + Ubuntu 14.10 .结果遇到了 apt-get 源无法更新的情况,以及安装包安装不全的情况.只好咬一咬牙,又重新把系统给更新一边. apt-get 源无法更新解决方案:传送门 首先先备份源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup 用编辑器打开: sudo gedit /etc/

python安装好django库,新建django项目

我安装好django库之后,想在pycharm里新建django项目,发现没有django选项.百度后发现只有专业版才可以直接创建django项目,社区版推荐用命令创建,如下: 1. 在DOS黑窗口下进入到你想创建项目的路径下 2. django-admin startproject  MySite(MySite为项目名称,自行更换) 创建项目 3. cd到项目目录(cd MySite)输入:python manage.py runserver 运行项目 4. 浏览器里输入127.0.0.1:8

C++学习——关于C++平台安装教程及新建项目

C++学习 ——关于C++平台安装教程及新建项目 一.平台下载 (1)资源 作为一个新手,安装方便操作方便的,dev C++是个很不错的选择,但是我认为唯一不足的地方就是背景外观很难受(下面会解释一哈!). 下载资源放到了百度网盘, 链接:https://pan.baidu.com/s/1d1jVR7DXAtTnNc7W507Igw 提取码:9vdm 如果有问题可以联系我! 接下来是安装教程! (2)安装教程 ①网盘文件提取出来后. ②这里的语言能看懂的只有英文.(不过不用担心,之后会可以设置成

Hadoop第6周练习—在Eclipse中安装Hadoop插件及测试(Linux操作系统)

1    运行环境说明... 3 1.1     硬软件环境... 3 1.2     机器网络环境... 3 2    书面作业1:安装Eclipse并测试... 3 2.1     书面作业1内容... 3 2.2     实现过程... 4 2.2.1   下载Eclipse. 4 2.2.2   解压elipse. 5 2.2.3   启动eclipse. 6 2.2.4   加载eclipse插件... 7 2.2.5   打开MapReduce视图... 8 2.2.6   启动ha

VMware 虚拟机安装 hadoop 2.6.0 完全分布式集群

最近连着搭了两次hadoop的集群,搭建的时候也碰到了一些问题,因为之前对linux 不熟悉,经常遇到各种问题和命令忘记写,幸亏有度娘谷哥,这里做一个记录 下次使用的时候用的上 计算机的配置 计算机: G3440 3.3G 双核 8G内存 虚拟机: vmware workstation 12 pro 系统: centos6.5 节点: 192.168.133.33 master.hadoop 192.168.1.151 slave1.hadoop 192.168.1.151 slave2.had

Ubuntu安装Hadoop与Spark

更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了.按 ctrl+alt+t 打开终端窗口,执行如下命令: sudo apt-get update 若出现如下 "Hash校验和不符" 的提示,可通过更改软件源来解决.若没有该问题,则不需要更改.从软件源下载某些软件的过程中,可能由于网络方面的原因出现没法下载的情况,那么建议更改软件源.在学习Hadoop过程中,即使出现"Hash校验和不符"