1、安装Hadoop开发插件

hadoop安装包contrib/目录下有个插件hadoop-0.20.2-eclipse-plugin.jar,拷贝到myeclipse根目录下/dropins目录下。

2、 启动myeclipse,打开Perspective:

【Window】->【Open Perspective】->【Other...】->【Map/Reduce】->【OK】

3、 打开一个View:

【Window】->【Show View】->【Other...】->【MapReduce Tools】->【Map/Reduce Locations】->【OK】

4、 添加Hadoop location:

location name: 我填写的是:localhost.
Map/Reduce Master 这个框里
Host:就是jobtracker 所在的集群机器,这里写localhost
Hort:就是jobtracker 的port,这里写的是9999
这两个参数就是mapred-site.xml里面mapred.job.tracker里面的ip和port
DFS Master 这个框里
Host:就是namenode所在的集群机器,这里写localhost
Port:就是namenode的port,这里写8888
这两个参数就是core-site.xml里面fs.default.name里面的ip和port
(Use M/R master host,这个复选框如果选上,就默认和Map/Reduce Master这个框里的host一样,如果不选择,就可以自己定义输入,这里jobtracker 和namenode在一个机器上,所以是一样的,就勾选上)

user name:这个是连接hadoop的用户名,因为我是用lsq用户安装的hadoop,而且没建立其他的用户,所以就用lsq。下面的不用填写。
然后点击finish按钮,此时,这个视图中就有多了一条记录。

重启myeclipse并重新编辑刚才建立的那个连接记录,现在我们编辑advance parameters tab页
(重启编辑advance parameters tab页原因:在新建连接的时候,这个advance paramters tab页面的一些属性会显示不出来,显示不出来也就没法设置,所以必须重启一下eclipse再进来编辑才能看到)

这里大部分的属性都已经自动填写上了,其实就是把core-defaulte.xml、hdfs-defaulte.xml、mapred-defaulte.xml里面的一些配置属性展示出来。因为在安装hadoop的时候,其site系列配置文件里有改动,所以这里也要弄成一样的设置。主要关注的有以下属性:
fs.defualt.name:这个在General tab页已经设置了
mapred.job.tracker:这个在General tab页也设置了
dfs.replication:这个这里默认是3,因为我在hdfs-site.xml里面设置成了1,所以这里也要设置成1
hadoop.job.ugi:这里要填写:lsq,Tardis,逗号前面的是连接的hadoop的用户,逗号后面就写死Tardis(这个属性不知道我怎么没有...)
然后点击finish,然后就连接上了(先要启动sshd服务,启动hadoop进程),连接上的标志如图:

5、新建Map/Reduce Project:

【File】->【New】->【Project...】->【Map/Reduce】->【Map/Reduce Project】->【Project name: WordCount】->【Configure Hadoop install directory...】->【Hadoop installation directory: D:\cygwin\home\lsq\hadoop-0.20.2】->【Apply】->【OK】->【Next】->【Allow output folders for source folders】->【Finish】

6、新建WordCount类:

添加/编写源代码:

D:\cygwin\home\lsq\hadoop-0.20.2/src/examples/org/apache/hadoop/examples/WordCount.java

package org.apache.hadoop.examples;

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

}

}

7、上传模拟数据文件夹。

为了运行程序,需要一个输入的文件夹和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序一个输入文件夹。

(1)、在当前目录(如hadoop安装目录)下新建文件夹input,并在文件夹下新建两个文件file1、file2,这两个文件内容分别如下:

file1

Hello World Bye World
file2
Hello Hadoop Goodbye Hadoop

(2)、.将文件夹input上传到分布式文件系统中。
在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令:
bin/hadoop fs -put input in
8、 配置运行参数:

①在新建的项目WordCount,点击WordCount.java,右键-->Run As-->Run Configurations
②在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
③配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:

(如果运行时报java.lang.OutOfMemoryError: Java heap space 配置VM arguments(在Program arguments下)

-Xms512m -Xmx1024m -XX:MaxPermSize=256m

8、点击Run,运行程序

点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令如下,查看是否生成文件夹output:

bin/hadoop fs -ls

用下面命令查看生成的文件内容:

bin/hadoop fs -cat output/*

如果显示如下,说明已经成功在myeclipse下运行第一个MapReduce程序了。

Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2

转载于:https://www.cnblogs.com/jasonHome/p/6816453.html

[原创] 毕设---在myeclipes中安装Hadoop开发插件相关推荐

  1. Ambari在离线环境中安装Hadoop集群

    2019独角兽企业重金招聘Python工程师标准>>> http://www.hackbase.com/article-973-1.html (WJW)Ambari在离线环境中安装H ...

  2. suse linux c 编译环境,SUSE 11中安装GCC开发环境

    SUSE11中安装GCC开发环境 安装包下载网站:http://213.174.32.130/sles/distribution/11.0-SP1/repo/disk1/suse/x86_64/ RP ...

  3. 在一个空的Eclipse中安装Android开发的ADT和SDK

    在一个空的Eclipse中安装Android开发的ADT和SDK 一.eclipse中安装adt插件(http://jingyan.baidu.com/article/8cdccae99b564a31 ...

  4. 在ECS实例的centos系统中安装Hadoop

    返回<在阿里云中搭建大数据实验环境>首页 提示:本教程是一个系列文章,请务必按照本教程首页中给出的各个步骤列表,按照先后顺序一步步进行操作,本博客假设你已经顺利完成了之前的操作步骤. 在阿 ...

  5. (八)在ECS实例的Ubuntu系统中安装Hadoop

    在阿里云ECS的Ubuntu系统中安装Hadoop,和在本地电脑安装Hadoop,基本相似,但是,也有略微差别,必须正确配置,否则,会导致无法顺利启动.安装Hadoop之前,请确保已经根据前面的博客& ...

  6. IDEA中配置hadoop开发环境

    IDEA中整合hadoop开发环境 前言: hadoop程序运行在分布式环境下,运行调试MapReduce只需要对应的hadoop相应的依赖jar包就可以,下面以是在伪分布模式下hadoop程序的开发 ...

  7. Windows中安装iPhone开发环境

    标题:在Windows中安装iPhone开发环境 很多朋友希望在体验或学习iphone开发,但是iphone开发环境一般需要安装在mac计算机下mac os中. 这给许多朋友带来了额外成本投入. 网上 ...

  8. VSCode中安装Live Server插件实现Html网页代码的实时预览

    VSCode中安装Live Server插件实现Html网页代码的实时预览 利用寒假时间学习了一些基本的网页知识,在编写Html代码时可以利用IDEA.WebStorm.Dream Weaver等工具 ...

  9. visual studio安装python插件_Visual Studio 2012 Ultimate 上安装 Python 开发插件 PTVS

    Visual Studio 2012 Ultimate 上安装Python 开发插件PTVS 转载于ITNOSE1.我的环境 操作系统:Win7 旗舰版Service Pack 1 VS版本:Micr ...

最新文章

  1. 【数字信号处理】序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 sinωn 的傅里叶变换 | 复变函数欧拉公式 )
  2. iOS各种小理论知识
  3. 无悔入华夏怎么一直显示服务器,无悔入华夏新手开局玩法 无悔入华夏新手攻略开局带的...
  4. excel制作窗体查询界面_利用 VBA窗体制作excel登录界面
  5. 如何自学成Python大神?这份学习宝典火爆 IT 圈!
  6. mysql基础5-数据的操作
  7. linux可执行文件bad interpreter解决方法
  8. 张鑫旭的《CSS世界》读后笔记
  9. python编写群发软件编写_我帮公司财务写了个“群发工资条”的 Python 脚本!
  10. 基于java客户关系管理系统
  11. rs232接口_为什么越来越多人用RS232接口,却还分不清DB9、DB25的引脚定义?
  12. 博士申请 | 美国北卡州立大学郭志山教授招收机器学习方向全奖博士生
  13. 移动通信网络架构的演进
  14. linux的核心安装下的命令行,linux lilo命令参数及用法详解--linux安装核心载入,开机管理程...
  15. Windows下使用Grub4dos无损(无需格式化)制作Windows/Linux双引导U盘并引导ISO镜像
  16. 打开文件管理器并进行文件夹的复制、移动、删除、创建
  17. [网站] 中国古代名画鉴赏网站
  18. 如何让虚拟角色自然融入现实?
  19. 蚂蚁森林在沙漠种植了5552万棵树,原来我也在做一件改变世界
  20. 10个维修中最常见的蓝屏代码,值得收藏!

热门文章

  1. vue-cli2定制ant-design-vue主题
  2. React开发(281):一定是路由错误
  3. [react] 写一个react的高阶组件并说明你对高阶组件的理解
  4. [html] html和html5有什么区别呢?
  5. [vue] vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
  6. [vue] vue怎么实现强制刷新组件?
  7. [css] 举例说明你知道的css技巧有哪些?
  8. 工作310:uni-初始获取数据onload
  9. 前端学习(2575):vue-route使用场景
  10. 前端学习(2311):react中处理跨域问题