配合eclipse搭配Hadoop的开发环境
安装了hadoop有什么用呢?当然是开发用啊,可是不知道在哪里开发?不急,现在就搭建开发环境,用最熟悉的eclipse。
注意:不知到什么原因,如果使用ubutu系统软件中心的eclipse版本,会出现插件无法安装的现象,所以,最后自己下载最新版的eclipse安装。
一.ubutu下eclipse的安装
1.首先下载eclipse的linux版本,位数要对应你所安装的jdk,否则会出问题。
2.把下载好的eclipse解压到/usr/local下,复制文件遇到权限问题时候,可以参考上一篇的方法来解决。
3.本来解压后是可以直接运行的,但是受到权限问题,双击eclipse运行会提示“程序没有安装”,无法运行。
4.给eclipse文件夹赋予足够的权限,先sudo chmod 777 /usr/local/eclipse/*
然后设置文件eclipse执行权:chown -R root:你的用户名 eclipse ,前提是cd进入到eclipse的根目录,如果还不行的话,就执行这条指令:
sudo chmod a+x eclipse,前提也是要进到eclipse的根目录。到了这一步,基本上能双击打开程序了。
5.打开程序后会发现eclipse的菜单栏被系统代理了,奇怪的是,代理后居然出问题,下拉无法打开,这样就有问题了。
为此,我们就不用系统代理,自己管理自己的菜单,不要假手于人。
首先,在终端输入以下命令:sudo gedit /usr/share/applications/eclipse.desktop
会弹出一个空白的文本输入。输入以下内容:
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Java IDE
Exec=env UBUNTU_MENUPROXY=0 /usr/local/eclipse/eclipse
Icon=/usr/local/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
其中内容不用改,只要修改路径就可以了,把路径改为你自己的安装路径,然后保存。这个文件就是程序的启动图标,双击就可以运行程序,你可以直接把这个文件拖到左边的快捷启动器当中,就可以快捷启动。其中取消代理的是这句:env UBUNTU_MENUPROXY=0,记得和后面的路径要有空格分开。
如果双击无效,就给这个文件赋予执行的权限吧:chown -R root:你的用户名 eclipse.desktop
6.此时再打开就会发现菜单栏归自己管了,正常使用了。
二.eclipse整合hadoop开发
1.想要两者整合,需要一个插件,hadoop-eclipse-plugin-2.2.0.jar,这个插件可以到网上自己下载,也可以自己编译,编译方法我不写了,直接下载用吧。
给大家提供一个下载链接:http://download.csdn.net/detail/u014756434/7693455
2.把下载好的插件直接复制到eclipse中的plugins文件夹里面,重新打开eclipse程序。
3.启动eclipse程序,设置hadoop的路径,方法:选择菜单栏的window------preferences----hadoop Map/Reduce,然后选择自己hadoop的安装目录。然后选择OK。
4.如果eclipse底下没有出现Map/Reduce locations这个视图的话,就选择菜单栏window----show view----other----MapReduce Tools-----Map/Reduce locations,此时底下就会出现一个小黄大象的视图。
5.在视图里面点击右键,选择new hadoop location,此时弹出一个界面。
在location name栏随便填写一个名字
其他不改,把左边的port改为9001,把右边的port改为9000,然后点击finish。
到这一步,开发环境就整合完成了。
如何验证结果呢,先启动hadoop,然后在eclipse新建一个map/reduce项目,就会发现项目顶端出现一个DFS Locations的文件夹,打开,会发现hdfs系统的路径。
这说明两者完成结合了,可以在ecllipse里面操作hdfs文件系统了。
注意:
Master.Hadoop的IP地址和port,与linux集群的mapred-site.xml文件中配置的一样。
DFS Master 中:Use M/R Master host:因为我们的NameNode和JobTracker都在一个机器上,所以前面的勾上。
IP地址和port与集群的core-site.xml文件中配置的一样