下载eclipse:https://www.eclipse.org/downloads/eclipse-packages

  下载hadoop eclipse插件:https://github.com/winghc/hadoop2x-eclipse-plugin/tree/master/release/hadoop-eclipse-plugin-2.6.0.jar

  下载hadoop:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

  下载hadoop2.7.1的window下编译好的bin目录:http://url.cn/4EO196a

   1、配置hadoop环境变量

    将下载的hadoop-2.7.1.tar.gz进行解压,复制解压路径,配置到系统环境变量中

    

    

    解压下载hadoop windowsbin目录包

    

    将解压出来的内容复制到hadoop-2.7.1\bin 目录中,再将hadoop.dll文件复制到C:\Windows\System32中,然后重启机器;

  2、配置eclipse

    打开eclipse ,选择window/Peferences设置hadoop安装路径

    

    在eclipse中的MapReduce面板右击新建hadoop localtion

    

   在弹窗的面板中输入hadoop服务器的DFS Master ip和端口

   

   注意由于本机使用的是administrator的用户,所以访问服务器的DFS可能会有权限问题,可master服务器的hadoop/etc/hadoop/hdfs-site.xml 中添加如下配置

  1. <property>
  2. <name>dfs.permissions</name>
  3. <value>false</value>
  4. </property>

   完成后可在Project Exploer中看到如下界面

   

  3、新建hadoop项目

     

    

    WordCount.java代码

  1. package com.apache.hadoop.examples;
  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.Text;
  10. import org.apache.hadoop.mapreduce.Job;
  11. import org.apache.hadoop.mapreduce.Mapper;
  12. import org.apache.hadoop.mapreduce.Reducer;
  13. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  14. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  15. import org.apache.hadoop.util.GenericOptionsParser;
  16.  
  17. public class WordCount {
  18. public static class TokenizerMapper
  19. extends Mapper<Object, Text, Text, IntWritable>{
  20.  
  21. private final static IntWritable one = new IntWritable(1);
  22. private Text word = new Text();
  23.  
  24. public void map(Object key, Text value, Context context
  25. ) throws IOException, InterruptedException {
  26. StringTokenizer itr = new StringTokenizer(value.toString());
  27. while (itr.hasMoreTokens()) {
  28. word.set(itr.nextToken());
  29. context.write(word, one);
  30. }
  31. }
  32. }
  33.  
  34. public static class IntSumReducer
  35. extends Reducer<Text,IntWritable,Text,IntWritable> {
  36. private IntWritable result = new IntWritable();
  37.  
  38. public void reduce(Text key, Iterable<IntWritable> values,
  39. Context context
  40. ) throws IOException, InterruptedException {
  41. int sum = 0;
  42. for (IntWritable val : values) {
  43. sum += val.get();
  44. }
  45. result.set(sum);
  46. context.write(key, result);
  47. }
  48. }
  49.  
  50. public static void main(String[] args) throws Exception {
  51. Configuration conf = new Configuration();
  52. Job job = new Job(conf, "word count");
  53. job.setJarByClass(WordCount.class);
  54. job.setMapperClass(TokenizerMapper.class);
  55. job.setCombinerClass(IntSumReducer.class);
  56. job.setReducerClass(IntSumReducer.class);
  57. job.setOutputKeyClass(Text.class);
  58. job.setOutputValueClass(IntWritable.class);
  59. FileInputFormat.addInputPath(job, new Path(args[0]));
  60. FileOutputFormat.setOutputPath(job, new Path(args[1]));
  61. System.exit(job.waitForCompletion(true) ? 0 : 1);
  62. }
  63. }

    在运行main方法前先配置参数,并且在项目跟目录(myFirstHadoop)下面新建input文件夹,再往里面添加测试文件,文件里面随意添加一些单词

    

    执行后会在myFirstHadoop下出现一个output文件夹,里面的文件中会有运行的结果,注意下次运行的时候要删除output目录

    

    

  4、在eclipse中连接服务器hdfs测试

    4.1、复制配置文件

      在master服务器中下载三个配置文件core-site.xml,hdfs-site.xml,log4j.properties,并复制到项目的src下

      

    4.2、修改运行参数

      由于window中调用服务器的时候是使用的administrator账号,而服务器fdfs在使用相对路径时是相对/user/用户名的路径

      而我们服务器中没有administrator用户,所以要将运行参数改成绝对路径

        

      如图我使用的是hadoop的账号,运算后的输入路径为/user/hadoop/input,输出路径为/user/hadoop/output

    4.3、新建目录并上传数据

      

      如图在user添加hadoop和input的目录与我们运行参数中的配置对应,然后上传我们的测试文件wordcount.txt

    4.4、运行测试程序

      运行配置和输入数据都准备好后执行程序,将在/user/hadoop/output中看到输出结果,结果应该和3中本地测试的结果一致;

    4.5、导出测试的jar包到服务器运行

      测试ok后可以将jar包进行导出,方便直接在服务器中运行使用

      在项目上右击,选择Export,再选择JAR file

      

      next后选择导出路径,将导出的wordcount.jar上传到hadoop的master服务器的/opt目录

      通过hdfs dfs -put /opt/wordcount.txt input 往input目录中添加测试文件,文件的内容跟eclipse中一致,如果input目录不存在则要先新建input目录

        hdfs dfs -mkdir input

      执行:

       hadoop jar /opt/wordcount.jar com.apache.hadoop.examples.WordCount input/wordcount.txt output

      通过

       hdfs dfs -cat /opt/test.txt output/part-r-00000    

      可看到输出和之前测试一样的结果

  

      

windows中eclipse调试hadoop的更多相关文章

  1. windows下本地调试hadoop代码,远程调试hadoop节点。

    1.在github上搜索下载winutils.exe相关的一套文件,下载对应hadoop的版本. 2.将所有文件复制到hadoop的bin目录下 3.将hadoop.dll复制到windows\sys ...

  2. Windows下Eclipse连接hadoop

    2015-3-27 参考: http://www.cnblogs.com/baixl/p/4154429.html http://blog.csdn.net/u010911997/article/de ...

  3. windows中eclipse连接虚拟机hdfs

    1.修改配置文件core-site.xml,将其中localhost改为虚拟机的ip地址: 在Ubuntu中,打开控制台,使用命令ifconfig查看虚拟机ip,如图: 修改[hadoop安装路径]/ ...

  4. windows 中 Eclipse 打开当前文件所在文件夹

    默认情况下使用eclipse打开当前文件所在文件夹很麻烦,需要右键点击 Package Explorer 中的节点选择属性,然后复制路径,再打开资源管理器,然后再把路径粘贴进去.而MyEclipse一 ...

  5. [原创] Windows下Eclipse连接hadoop

    1 下载hadoop-eclipse-plugin :我用的是hadoop-eclipse-plugin1.2.1 ,百度自行下载 2 配置插件:将下载的插件解压,把插件放到..\eclipse\pl ...

  6. windows下使用eclipse调试C程序

    一.环境描述 Eclipse IDE for C/C++ Developers version 4.4.0 MinGW  gcc/g++ version 4.8.1;gdb version 7.6.1 ...

  7. Hadoop学习之配置Eclipse远程调试Hadoop

    构建完毕Hadoop项目后,接下来就应该跟踪Hadoop的运行情况,比方在命令行运行hadoop namenode–format时运行了Hadoop的那些代码.当然也能够直接通过阅读源码的方式来做到这 ...

  8. 如何在Windows中使用Eclipse访问虚拟机Linux系统中的hadoop(伪分布式)

    因为计算机配置过低,在虚拟机里几乎无法使用Eclipse,效率极低! 所以现在尝试使用Windows下Eclipse操作虚拟机中Hadoop,步骤如下: 开发环境:Hadoop2.7.1,Ubuntu ...

  9. eclipse远程调试Hadoop

    环境需求: 系统:window 10 eclipse版本:Mars Hadoop版本:2.6.0 资源需求:解压后的Hadoop-2.6.0,原压缩包自行下载:下载地址 丑话前头说: 以下的操作中,e ...

随机推荐

  1. 别人的Linux私房菜(1)计算机概论

    计算机主板 早期两个网桥控制通信,北桥连接速度比较快的CPU.内存.显卡.南桥连接较慢的接口,如硬盘,USB,网卡等.北桥的控制器集成到了CPU中. CPU工作频率 外频:CPU与外部组件进行数据传输 ...

  2. dblink(转)

    oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入.修改.删除等操作 首先了解下环境:在tnsnames.ora中配置两个 ...

  3. shell入门练习

    **定义局部变量, 局部变量在退出Shell客户端时会失效** **单引号:原样输出** **双引号:如果里面有变量,会输出变量** **没有引号:输出变量** 可以在调用脚本的时候给脚本传递参数,脚 ...

  4. C++中栈和队列的基本操作

    栈操作: s.push(item)    // 将item压入栈中 s.pop()            // 删除栈顶元素,不返回值 s.top()             // 读取栈顶元素,返回 ...

  5. Java中List与数组互相转化

    问题的提出: 今天在完成一个小功能的时候,需要把存放在List中的数据转化成字符串数组.想当然地用了List的一个方法toArray(),它的返回值是Object[]类型,于是用强制类型转换.代码如下 ...

  6. linux 修改yum 为阿里云源

    为了加快yum的下载速度,我们可以讲yum源指向阿里云的资源. 操作方法: 1.备份系统的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repo ...

  7. 深度优先搜索DFS和广度优先搜索BFS

    DFS简介 深度优先搜索,一般会设置一个数组visited记录每个顶点的访问状态,初始状态图中所有顶点均未被访问,从某个未被访问过的顶点开始按照某个原则一直往深处访问,访问的过程中随时更新数组visi ...

  8. powerdesiginer 生成oracle脚本问题,一步解决

    select * from tablename时, 总是提示错误:table or view does not exits 但是在user_tables中却可以看到刚建立的表. 原因是powerDes ...

  9. [置顶] AngularJS实战之路由ui-sref-active使用

    当我们使用angularjs的路由时,时常会出现一个需求,当选中菜单时把当前菜单的样式设置为选中状态(多数就是改变颜色) 接下来就看看Angular-UI-Router里的指令ui-sref-acti ...

  10. 02:PostgreSQL Character Sets

    在利用postGIS导入shapefile文件到postgresql数据库的时候,老是提示字符串的问题,或者是乱码,试了好几种都不行,于是度娘之.... 使用默认的UTF8,提示信息是:建议使用LAT ...