hadoop在虚拟机上(远程连接也是一样只需要知道master的ip和core-site.xml配置即可。

Vmware上搭建了hadoop分布式平台:

192.168.11.134 master   
192.168.11.135 slave1   
192.168.11.136 slave2

core-site.xml 配置文件:

Windows下Eclipse连接hadoop_右键

 

1 下载插件

hadoop-eclipse-plugin-2.5.1.jargithub上下载源码后需要自己编译。这里使用已经编译好的插件即可

2 配置插件

把插件放到..\eclipse\plugins目录下,重启eclipse,配置Hadoop installation directory,如果插件安装成功,打开Windows—Preferences后,在窗口左侧会有Hadoop Map/Reduce选项,点击此选项,在窗口右侧设置Hadoop安装路径。(windows下只需把hadoop-2.5.1.tar.gz解压到指定目录)。

Windows下Eclipse连接hadoop_hdfs_02

3 配置Map/Reduce Locations

打开Windows—Open Perspective—Other,选择Map/Reduce,点击OK,控制台会出现:

Windows下Eclipse连接hadoop_eclipse_03

右键 new Hadoop location 配置hadoop:输入 Location Name,任意名称即可.

Windows下Eclipse连接hadoop_eclipse_04

点击"Finish"按钮,关闭窗口。

点击左侧的DFSLocations—>master (上一步配置的location name),如能看到user,表示安装成功

Windows下Eclipse连接hadoop_hdfs_05

4 wordcount实例

File—>Project,选择Map/Reduce Project,输入项目名称WordCount等。在WordCount项目里新建class,名称为WordCount,代码如下:

Windows下Eclipse连接hadoop_右键_06

上面的路径1 和路径2 由于在代码中已经定义,这不需要在配置文件中定义,若上面路径1和路径2 代码为:

Windows下Eclipse连接hadoop_hdfs_07

这需要配置运行路径:类右键 Run As—>Run Configurations

Windows下Eclipse连接hadoop_右键_08

红色部分为配置的hdfs上文件路径, 点击run 或或者:Run on Hadoop,运行结果会显示在DFS Locations。若运行中有更新,右键DFS Locations,点disconnect更新

运行结果:

Windows下Eclipse连接hadoop_用户名_09

5 问题及解决办法

1 在Hadoop的bin目录下放winutils.exe,

  2 在环境变量中配置 HADOOP_HOME,

  3 hadoop.dll拷贝到C:\Windows\System32下面即可

  上面的文件已经下载,在文件hadoop-common-2.2.0-bin-master.zip中。

5.2 无法给hdfs上传文件

安装过程中由于已经在hdfs上上传了文件,当重启在 hdfs namenode –format时,后,会提示无法上传文件,此时需要删除hdfs已经存在的副本:

  在master上删除dfs上name目录下的current目录: rm –rf current/

  在slave上删除dfs上的整个data目录 :rm –rf data/

5.3 出现log4j警告

将文件log4j.properties放到src下和java文件同目录.

5.3 访问权限不够

参考博客:http://www.linuxidc.com/Linux/2014-08/105335.htm

方法1:这种方法无效

  Eclipse连接远程Hadoop集群开发时权限不足问题解决方案:

  当前登录windows的用户名和hadoop集群的用户名不一致,将没有权限访问

解决方案:

管理DFS system目录。目前做法是将hadoop服务集群关闭权限认证,修改hadoop安装集群master的hadoop-1.2.0/conf/hdfs-site.xml,增加:

Windows下Eclipse连接hadoop_右键_10

正式发布时,可以在服务器创建一个和hadoop集群用户名一致的用户,即可不用修改master的permissions策略。

方法2:在master节点执行:(有效)

  hadoop fs -chmod 777 /user

  其中/user是我上传文件的路径(这个视具体情况而定)

方法3 :计算机用户名改为hadoop

怀有希望!!