021_在Eclipse Indigo中安装插件hadoop-eclipse-plugin-1.2.1.jar,直接运行wordcount程序

1、工具介绍

 Eclipse Idigo、JDK1.7-32bit、hadoop1.2.1、hadoop-eclipse-plugin-1.2.1.jar(自己网上下载)

2、插件安装步骤

  1)将hadoop-eclipse-plugin-1.2.1.jar放到eclipse安装目录的plugins文件夹中,重新启动eclipse。

  
  2)打开Window-->Preferens,发现Hadoop Map/Reduce选项,说明插件安装成功,配置Hadoop installation directory为本地Hadoop 安装解压的目录。此处选择是hadoop1.2.1软件包在windows中的文件夹,其中的各种文件可以都不用配置,与Linux中的hadoop没有什么特殊的联系,原生态的hadoop1.2.1.tar.gz解压的就行。

  
  3)选择window -> open perspective  -> Other... , 选择有大象图标的 Map/Reduce,打开Map/Reduce的开发环境,右下角多了一个Map/Reduce Locations的框。

  

4)选择Map/Reduce Locations 标签,点击标签最右边的大象图标,即齿轮状图标右侧的大象图标,打开参数设置页面。

Location Name : 参数设置名称
 Map/Reduce Master :Hadoop集群的Map/Reduce地址,应与mapredsite.xml中的mapred.job.tracker设置相同
 Host: hadoop-master.dragon.org
 port: 9001
 DFS Master :Hadoop的master服务器地址,应与core-site.xml中的 fs.default.name 设置相同
 Host: hadoop-master.dragon.org
 Port: 9000
设置完成后,点击Finish

5)接着点击 【Advanced parameters】从中找见【hadoop.tmp.dir】,修改为Hadoop集群【core-site.xml】中配置的值

6)重启hadoop配置一下两步(若不重启能找到的话也可以直接配置,本次测试时重启了,否则找不到)

配置【dfs.permissions】,修改为Hadoop集群【hdfs-site.xml】中配置的值【false】
配置【dfs.replication】,修改为Hadoop集群【hdfs-site.xml】中配置的值【1】

3、跑wordcount程序测试

因为本人已经测试完成,这个是后期整理,借用几张梦琪老师的图用一下,不影响运行,节省时间;

1)使用Eclipse  创建MapReduce工程,你会发现多了好多配置的jar文件,自动导入到项目中了。

2)将wordcount程序拷贝到该工程目录src文件夹下;程序同上一篇博客的wordcount程序。

  1 package org.dragon.hadoop.mr;
  2
  3 import java.io.IOException;
  4 import java.util.StringTokenizer;
  5
  6 import org.apache.hadoop.conf.Configuration;
  7 import org.apache.hadoop.fs.Path;
  8 import org.apache.hadoop.io.IntWritable;
  9 import org.apache.hadoop.io.LongWritable;
 10 import org.apache.hadoop.io.Text;
 11 import org.apache.hadoop.mapreduce.Job;
 12 import org.apache.hadoop.mapreduce.Mapper;
 13 import org.apache.hadoop.mapreduce.Reducer;
 14 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 15
 16 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 17 import org.apache.hadoop.util.GenericOptionsParser;
 18
 19 import com.sun.accessibility.internal.resources.accessibility;
 20 import com.sun.org.apache.xpath.internal.Arg;
 21
 22 /**
 23  *
 24  * @author ZhuXY
 25  * @time   2016-3-7 下午3:37:54
 26  *
 27  * MapReduce 初级案例 wordcount程序
 28  */
 29 public class MyWorldCount {
 30
 31     //Mapper 区域
 32     /**
 33      * <KEYIN,         VALUEIN,         KEYOUT,         VALUEOUT>
 34      * 输入key类型    输入value类型    输出key类型        输出value类型
 35      *
 36      */
 37
 38     /**
 39      * WordCount程序map类
 40      *
 41      */
 42     static  class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
 43
 44         private Text word=new Text();
 45         private final static IntWritable one=new IntWritable(1);
 46
 47         //快捷键alt+shift+s
 48         //map方法每次只读取一行数据,换句话说就是每行启动一个map函数
 49         @Override
 50         protected void map(LongWritable key, Text value, Context context)
 51                 throws IOException, InterruptedException {
 52
 53             //获取每行数据的值
 54             String lineValue=value.toString();
 55
 56             //进行分割
 57             StringTokenizer stringTokenizer=new StringTokenizer(lineValue);
 58
 59             //遍历
 60             while (stringTokenizer.hasMoreElements()) {
 61
 62                 //获取每个值
 63                 String worldValue=stringTokenizer.nextToken();
 64
 65                 //设置map, 输入的key值
 66                 word.set(worldValue);
 67                 context.write(word, one); //如果出现就出现一次,存在每行出现几次,这时候键的值一样,多个键值对
 68             }
 69         }
 70     }
 71
 72     //Reducer 区域
 73     /**
 74      * <KEYIN, VALUEIN, KEYOUT, VALUEOUT>
 75      * KEYIN key, Iterable<VALUEIN> values, Context context
 76      */
 77
 78     /**
 79      * WordCount程序reduce类
 80      *
 81      */
 82     static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
 83
 84         private IntWritable resultIntWritable=new IntWritable();
 85         //这里key还是key。但是value变成了values
 86         @Override
 87         protected void reduce(Text key, Iterable<IntWritable> values,
 88                 Context context)
 89                 throws IOException, InterruptedException {
 90             //用于累加的变量
 91
 92             int sum=0;
 93             //循环遍历Interable
 94             for(IntWritable value:values)
 95             {
 96                 //累加
 97                 sum+=value.get();
 98             }
 99
100             //设置总次数
101             resultIntWritable.set(sum);
102             context.write(key, resultIntWritable);
103         }
104     }
105
106     //Client  区域
107     public static void main(String[] args) throws Exception {
108
109         //方便起见直接在此处写死了,可以在run as的配置中配置参数
110         args=new String[]{
111                 "hdfs://hadoop-master.dragon.org:9000/wc/wcinput/",
112                 "hdfs://hadoop-master.dragon.org:9000/wc/wcoutput/"
113         };
114
115         //获取配置文件信息
116         Configuration configuration=new Configuration();
117
118         //当命令格式不正确的时候,提示,类似于shell中的命令提示
119 //        String[] otherArgs = new GenericOptionsParser(configuration,
120 //                args).getRemainingArgs();
121 //                if (otherArgs.length != 2) {
122 //                System.err.println("Usage: wordcount <in> <out>");
123 //                System.exit(2);
124 //                }
125
126         //创建job。设置配置文件信息和Job名称
127         Job job=new Job(configuration,"wc");
128
129         //1、设置Job运行的类
130         job.setJarByClass(MyWorldCount.class);
131
132         //2、设置Mapper类和Reducer类
133         job.setMapperClass(MyMapper.class);
134         job.setReducerClass(MyReducer.class);
135
136         //3、设置输入文件的目录和输出文件目录
137         FileInputFormat.addInputPath(job, new Path(args[0]));
138         FileOutputFormat.setOutputPath(job, new Path(args[1]));
139
140         //4、设置输出结果的key和value的类型
141         job.setOutputKeyClass(Text.class);
142         job.setOutputValueClass(IntWritable.class);
143
144         //5、提交Job等待运行结果,并在客户端显示运行信息
145         boolean isSuccess=job.waitForCompletion(true);
146
147         //6、结束程序
148         System.exit(isSuccess?0:1);
149     }
150 }

  3)直接在类中右击-->Run on hadoop

  4)报错如下;Hadoop PriviledgedActionException

  解决方案:

  a、简称“修改源码”——找到hadoop1.2.1的源码,就是你第二步添加的源码,

修改%HADOOP_HOME%/src/core/org/apache/hadoop/fs/FileUtil.java里面checkReturnValue方法,注释掉方法内容:

  b、简称“导入包修改”。显然第一种办法不是很合适。

  到源码中找到该java文件,在该项目中建立与该文件所在的packet相同的packet,然后将FileUtils.java拷贝到该packet下面,注释掉上述注释掉的内容。

  原因:Eclipse对packet的加载规则是先用本项目下面的,在用库中的。

  5)再次运行wordcount程序没有问题了。

  6)备注:如还有问题参考下面一张图片:

到此结束,以后插件就可以用了

时间: 2024-10-08 17:58:46

021_在Eclipse Indigo中安装插件hadoop-eclipse-plugin-1.2.1.jar,直接运行wordcount程序的相关文章

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序

win7 64位下安装hadoop的eclipse插件并编写运行WordCount程序 环境: win7 64位 hadoop-2.6.0 步骤: 1.下载hadoop-eclipse-plugin-2.6.0.jar包 2.把hadoop-eclipse-plugin-2.6.0.jar放到eclipse安装目录下的plugins目录下 3.打开eclipse发现左边多出来一个DFS Locations 4.在win7上解压hadoop-2.6.0. 5.下载hadoop.dll.winuti

在Eclipse/MyEclipse中安装spket插件

Spket ide是强大的工具包为了JavaScript和XML的开发,这个强大的编辑器对JavaScript, XUL/XBLand Yahoo! Widget的开发都有全面的支持 ,例如代码完成,语法高亮和内容概要,帮助开发有成效,创造高效率的javascript代码. 小巧的身躯,强大杀伤力,足以具备紫色装备的特点. 这款利器,专门为 使用 Ext, killer级的AjaxUI设计开发人员配备. spket是一个开发JavaScript和Ext等的开发工具,它可以 是独立的IDE,也可以

在ubuntu上安装eclipse同时连接hadoop运行wordcount程序

起先我是在win7 64位上远程连接hadoop运行wordcount程序的,但是这总是需要网络,考虑到这一情况,我决定将这个环境转移到unbuntu上 需要准备的东西 一个hadoop的jar包,一个连接eclipse的插件(在解压的jar包里有这个东西),一个hadoop-core-*.jar(考虑到连接的权限问题) 一个eclipse的.tar.gz包(其它类型的包也可以,eclipse本身就是不需要安装的,这里就不多说了) 因为我之前在win7上搭建过这个环境,所以一切很顺利,但还是要在

Eclipse juno 中安装 JBoss Tools,集成Hibernate

Eclipse juno 中安装 JBoss Tools,集成Hibernate 在Eclipse中集成hibernate工具可以帮助开发者根据数据库生成映射文件.注释代码以及反向工程. Hibernate Tools作为JBoss Tools的核心组件,已经被捆绑在JBoss Tools中,安装完JBoss Tools的同时,Hibernate Tools也相应的被安装. 一.Help->Install New Software中安装 首先要找到跟Eclipse版本对应的Hibernate/J

(三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序

配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序 一.   需求部分 在ubuntu上用Eclipse IDE进行hadoop相关的开发,需要在Eclipse上安装hadoop的开发插件.最新释放出的hadoop包含源码的包,以 hadoop-1.X为例,包含相关的eclipse插件的源码,因此可以针对自己的eclipse版本来编译一个合适hadoop的eclipse插件.下面将详细介绍插件的编译安装过程,以及在Eclipse上配置hadoop开发插

一步一步跟我学习hadoop(2)----hadoop eclipse插件安装和运行wordcount程序

本博客hadoop版本是hadoop  0.20.2. 安装hadoop-0.20.2-eclipse-plugin.jar 下载hadoop-0.20.2-eclipse-plugin.jar文件,并添加到eclipse插件库,添加方法很简单:找到eclipse安装目录下的plugins目录,直接复制到此目录下,重启eclipse 依次点击eclipse工具栏的window-----show view ------other在弹出的窗口中输入map,确认找到如下所示 到这里插件安装成功 map

【Eclipse使用方法】Eclipse中安装插件的三种方式

Eclipse也用了很久,但是都没有怎么去研究过怎么安装插件,今天正好在自己新买的本上试了一下.现在将心得写下,以供参考.目前安装Eclipse插件主要有以下三种方式: 在线安装: 以TestNG的安装为例来阐述其安装过程. 第一步:点击菜单栏中“Help”菜单,在下拉列中选择“Install New Software...”.此时会弹出“install”的安装框. 第二步:在弹出的“install”框,选择之前已经建立好的site,如果没有建立好,则可以点击“Add”按钮,弹出一个添加site

如何在Ubuntu 14.04中安装最新版Eclipse

想必很多开发人员都知道,Ubuntu 软件源中提供的并不是最新版本的 Eclipse,本教程就教大家如何在 Ubuntu 14.04 中快速安装 Eclipse 官方发布的最新版本. 到目前为止,Eclipse 的官方最新版本为 Eclipse Kepler (4.3.2),我们可以使用如下步骤在 Ubuntu 14.04 或其它 Ubuntu 版本中进行快速安装. 1.安装OpenJDK Java 7 如果你的系统中没有安装 Java,我们需要按如下步骤事先安装好 OpenJDK Java 7

eclipse使用和安装插件

一.JDK 1.下载 首先要下载JDK的最新版本.我们可以在SUN公司的官方网站上下载:http://java.sun.com. 如果感觉比较麻烦可以到脚本之家网站下载,下载地址 http://www.jb51.net/softs/75724.html 进入官网后,选择Download - Java SE 点击Java SE 6 Update 10 Beta 后面的Download按钮,在接下来页面中选择JDK 6.  进入了下载选项,我们的操作平台是Windows XP,钩选上协议,按cont