Hadoop2.x的Eclipse插件编译与安装
2015-06-16 16:05 by hduhans, 142 阅读, 0 评论, 收藏, 编辑
Eclipse的Hadoop插件在开发hadoop应用程序中可以提供一些很方便的操作,可以直接Eclipse中浏览HDFS上的文件,可以直接新建选择MapReduce项目,项目自动包含所有需要的hadoop jar包,不必再手动拷贝。
Ant是一种Java的项目打包管理工具,类似于Maven,操作比Maven简单。本次Eclipse Hadoop插件使用Ant进行编译,如果本机已安装Ant,请略过这一步骤。
1、下载Ant
到官网(http://ant.apache.org/bindownload.cgi)下载最新的Ant包,本实验版本:apache-ant-1.9.5-bin.zip。
2、配置环境变量
1) Windows:① 环境变量新增:ANT_HOME=D:apache-ant-1.9.5;② classpath新增:%ANT_HOME%lib;③ path新增:%ANT_HOME%lib。
2) Linux:① /etc/profile新增:export ANT_HOME=/usr/local/ant;② 执行命令:source /etc/profile。
验证安装:ant -version
1、下载hadoop2.x插件
https://github.com/hduhans/hadoop2x-eclipse-plugin-master
2、开始编译
1) 打开命令行,进入插件解压后src/contrib/eclipse-plugin目录中;
2) 执行编译命令:ant jar -Dversion=2.6.0 -Declipse.home=D:desktopeclipse -Dhadoop.home=D:desktophadoop-2.6.0;
其中Declipse.home为ecipse根目录,Dhadoop.home为hadoop根目录。
3) 等待编译成功,出现如下“BUILD SUCCESSFUL”提示文字,说明编译成功;
编译成功的jar包位于:build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar
注释:
aboutyun@master:~/hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin$ ant jar -Dversion=2.5.0 -Declipse.home=/usr/eclipse -Dhadoop.home=/usr/hadoop
参数说明:
1.Dversion是你编译的版本,此版本为2.5.0
2.Declipse.home是Eclipse安装目录
3.Dhadoop.home是Hadoop安装目录
1、将编译后的 build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar 拷贝到 eclipse/plugins 目录中,重启eclipse;
2、在eclipse菜单中选择 windows → show view → other ,在弹出的对话框中选择“Map/Reduce Locations”,点击确定;
3、在控制台的“Map/Reduce Locations”页签空白处点击右键,选择“New Hadoop location”,填写参数,如下所示:
图2.1 New Hadoop location参数填写说明
其中Map/Reduce Master的端口地址该怎么填写,网上大都资料为hadoop1.x的mapred.job.tracker的端口号,但在hadoop2.x中已使用yarn来代替jobtracker,猜测这里填写mapreduce.jobtracker.http.address的端口值50030,也有资料说填写dfs.datanode.ipc.address端口值50020,具体填写何值有待进一步确认。
3、打开 Windows → Hadoop Map/Reduce ,右侧选择hadoop2.6所在路径:D:desktophadoop-2.6.0;
4、打开 Windows → show view → other ,选择“Project Explorer”,可以在 DFS Locations 中看到HDFS的目录结构;
图2.2 Eclipse Hadoop插件浏览HDFS目录
5、新建MapReduce项目,打开 New → Project ,选择“Map/Reduce Project”,输入项目名即可,项目创建后会自动导入hadoop下所需的jar包。
后面加上2.7.2的配制
前几篇博文介绍了如何安装Hadoop2.7.2分布式环境,如何启动Hadoop2.7.2以及如何执行hadoop的官方小例子wordcount,今天将着重介绍如何搭建hadoop2.7.2的开发环境,为后期做mapreduce的开发做准备。
在搭建开发环境之前,首先选择开发工具,就是大家都很熟悉的Eclipse,Eclipse提供了hadoop的插件,我们通过这个插件,就可以在eclipse中编写mapreduce。但是,这个插件可能会随着hadoop的版本升级或者eclipse的版本升级,而需要相应的去进行编译。所以,在我们开发之前,学会编译这个eclipse的hadoop插件至关重要,今天我将介绍如何编译这个插件。
1.首先通过sourcetree获取hadoop2x-eclipse-plugin插件。
插件地址在github上:https://github.com/winghc/hadoop2x-eclipse-plugin.git
如下图:克隆上面地址到本地目录即可
2.将克隆后的文件导入到idea中,如下图:
然后将idea中的ant配置好。
接着修改hadoop2x-eclipse-pluginsrccontribeclipse-pluginuild.xml文件
找到<target name="jar" depends="compile" unless="skip.contrib">标签,然后添加以下内容
<copy file="${hadoop.home}/share/hadoop/common/lib/htrace-core-${htrace.version}-incubating.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.home}/share/hadoop/common/lib/servlet-api-${servlet-api.version}.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.home}/share/hadoop/common/lib/commons-io-${commons-io.version}.jar" todir="${build.dir}/lib" verbose="true"/>
<copy file="${hadoop.home}/share/hadoop/common/lib/commons-httpclient-${commons-httpclient.version}.jar" todir="${build.dir}/lib" verbose="true"/>
以上这些jar包在编译hadoop2.7.2 eclipse插件的时候需要用到,如果不添加就会报错,所以,我们在ant编译之前先添加进来。
然后再找到<jar arfile="${build.dir}/hadoop-${name}-${hadoop.version}.jar" manifest="${root}/META-INF/MANIFEST.MF">标签,把刚刚添加的包,在ant构建的时候写到mainfest.mf文件的Bundle-ClassPath中:
lib/servlet-api-${servlet-api.version}.jar,
lib/commons-io-${commons-io.version}.jar,
lib/htrace-core-${htrace.version}-incubating.jar
再修改hadoop2x-eclipse-pluginsrcivylibraries.properties文件,这个文件配置了ant构建需要用到各个jar包的版本,以及构建hadoop的版本,由于这个插件工程师编译hadoop2.6.0的,所以我们需要修改以下配置,其实在ant构建的时候,会选择本地hadoop2.7.2目录中的jar包版本(hadoop-2.7.2sharehadoopcommon),所以只要将版本号改成对应的版本号即可如下图:
最后修改hadoop2x-eclipse-pluginivylibraries.properties文件,文件的的版本如上图版本修改一样,但是还有一个版本需要修改的就是
htrace.version的版本要改成3.1.0,htrace.version=3.1.0
然后cd到D:OpenSourceshadoop2x-eclipse-pluginsrccontribeclipse-plugin目录
执行以下命令:
ant jar -Dversion=2.7.2 -Declipse.home=E:eclipse-jee-mars-2-win32-x86_64eclipse -Dhadoop.home=E:hadoop-2.7.2
解释下这个命令:-Dversion是指这个插件的版本,Declipse.home是指eclipse的安装目录,-Dhadoop.home指本地文件中hadoop-2.7.2的安装目录。
命令执行成功之后就可以在hadoop2x-eclipse-pluginuildcontribeclipse-plugin目录下面找到
hadoop-eclipse-plugin-2.7.2.jar 包,这个包就是编译好的eclipse hadoop2.7.2插件,把这个插件放到eclipse安装目录的plugins目录下,我们就可以进入eclipse然后找到一个叫mapreduce的视图,就可以开始尝试编写mapreduce程序了,关于如何在eclipse里面来进行这个插件的使用,下一章节我们再继续。