开发环境:
1.hadoop-0.20.2
2.eclipse 3.6.2
3.linux的版本是centos 6.2
在开始配置eclipse之前,先要在Linux上安装并配置好hadoop。
我在装hadoop的时候出现过运行start-all.sh报permission denied错误的问题,当时我使用的是root账户,百度说hadoop有自己的权限系统,需要给root账户授权等等等,然并卵,我并没有看懂。最后发现问题在于我是在windows下下载好Hadoop之后再上传到服务器,改为在linux下下载hadoop再解压并按官网上的步骤配置之后就没有问题了。
hadoop安装步骤见官网。
进入正题。
1.插件设置:
在windows系统上也下载一个hadoop-0.20.2,进入contrib->eclipse-plugin文件夹,复制这个文件夹底下的hadoop给eclipse准备的插件到eclipse下的dropins或者plugins目录。
打开eclipse之后在preference下看到有Hadoop Map/Reduce则说明安装成功了。
进入此界面设置hadoop安装路径。
设置好以后在菜单栏点window->show view->others,输入map搜索,把Map/Reduce Locations窗口调出来。
如图:
点图上圈住的地方增加一个hadoop连接,点开之后界面如下:
Map/Reduce Master填mapred-site.xml上配置的主机号和端口,DFS Master的Host和port填入hadoop的core-site.xml上配置的端口。location name随便填。
配好以后插件设置完成。
2.project连接hadoop。
这里需要新建一个Map/Reduce工程,而非普通的java工程。
如果已经开发好了java工程的话,把源码复制过去就好了,记得配好lib。
新建好Map/Reduce工程之后,eclipse会自动生成一个DFS Location
hadoop-test是上一步配置hadoop连接的时候你设置的location name。
展开hadoop-test,可以看到一个文件树,这个文件树就是你的hadoop上的hdfs文件系统,可以在此对hdfs文件系统进行上传、删除、下载等操作。
PS:由于
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
获得的对象是LocalFileSystem,因此在创建fs之前,需要先配置conf到远程服务器,使用以下代码即可:
conf.set("fs.default.name","hdfs://your-host:your-hdfsport");
至此所有工作结束,可以右键main方法 -> debug as ->java application开始调试了。
PS:如果工程中需要传入main方法的参数args,右键main方法 -> debug as -> debug configuration配置。
PPS:运行时如果出现