作者:二青
个人站点:zhangerqing.cn 邮箱:[email protected] 微博:http://weibo.com/xtfggef
准备工具:
- Ubuntu 14.10 desktop 64 bit
- eclipse 4.3 kepler jee version
- hadoop 2.6.0
- hadoop eclipse plugin 2.6.0
起初我是打算用win7做实验,后来遇到一个null pointer的问题很奇怪,在网上找了很多资料都不起作用,有些问题很像,单用的并不是同一个版本,因此也不一定起作用,所以为了方便,我就直接改成用Ubuntu desktop版的了,这样就方便多了。在VirtualBox上装一个Ubuntu 14.10 desktop 64 bit版,配置jdk,下载安装eclipse kepler即可。
1. 将编译好的eclipse hadoop插件拷贝到eclipse安装目录下的plugin目录下,重启eclipse。 下载地址 源码地址
2. 打开Window -> Preference -> Hadoop Map/Reduce,配置右面的"Hadoop installation directory"项,指向hadoop安装目录。注意:此处并非是linux上真实的hadoop的安装目录,而是直接将hadoop安装包拷贝到当前系统的某个目录下,解压即可。
3. Window -> Open Perspective -> Other -> Map/Reduce,eclipse的下方会出现如下视图:
点击右上角的蓝色大象
location name随便填入,host填写hadoop集群的master所在的IP,第一个Port填写mapred-site.xml里定义的端口,如下图一,9001,第二个Port填写里core-site.xml定义的端口,如下图二,9000。填写完重启eclipse。
4. 打开上一个设置的页面,切换到Advanced parameters标签,修改如下配置项:
dfs.replication,默认是3,要根据你的Datanode的个数来定,如果你仅有2个datanode,那么就写2,如果只有一个,就写1,大于或者等于3个,写3。
hadoop.tmp.dir,这个要跟上节建立的Hadoop集群配置中core-site.xml 中的hadoop.tmp.dir设置一样,此处我们填写的是/root/hadoop/tmp。重启eclipse。
5. 我们可以看到左侧资源管理器里的DFS Locations视图
右键文件夹可以上传/下载文件或者目录。注意:如果此时报:
Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: error,则需要修改dfs的访问权限,编辑hdfs-site.xml文件,加入:
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
注意:生产环境不建议这么做。
6. 运行自带word count示例
新建Map/Reduce项目,进入/home/adam/hadoop/share/hadoop/mapreduce/sources目录,解压hadoop-mapreduce-examples-2.6.0-sources.jar包,将里面的WordCount.java复制到新建的项目里,点击Run Configurations配置启动参数。这里的output文件夹必须是之前没有创建的,这里会自动创建,否则报“目录已存在”的错误。
最后Run As “Run On Hadoop”即可,执行完毕后,去看hdfs上的output1目录,查看输出。
这样eclipse就连接到hadoop集群并且可以执行map/reduce任务了。
有什么问题欢迎与我联系: