编译hadoop-eclipse插件并集成到eclipse中去
来源:互联网 发布:手机淘宝支付宝登陆 编辑:程序博客网 时间:2024/05/22 17:06
网上有很多编译好的hadoop-eclipse-x.x.x的插件,参差不齐,有的是官方的插件,大部分是个人自己编译的插件分享出来,由于每个人的环境有所不同,直接使用这些插件的话总是会遇到一些问题,所以最好的办法就是自己根据自己的环境编译生成hadoop-eclipse-x.x.x插件,这样就不会出现问题了。
博主的环境如下:
操作系统:Ubuntu14.04
jdk:1.8.0
hadoop:1.0.0
eclipse:Neon4.6.3(这个影响不大,版本很多)
首先需要安装的基础环境就是jdk+ant,这里不多说,教程很多,也不复杂。
然后就是hadoop环境,这里博主是为了学习hadoop源码,所以只搭建了单机环境的hadoop
再就是安装eclipse,我用的是解压即用版。
上面的环境搭建好之后,就可以来配置hadoop-eclipse插件了
第一步:修改 {hadoop目录}/src/contrib/eclipse-plugins/build.xml
找到
<path id="classpath"></path>
用ctrl+F,然后在弹出框中输入“classpath”就可以快速找到啦。
找到之后,原本里面的内容如下:
<path id="classpath"> <pathelement location="${build.classes}"/> <pathelement location="${hadoop.root}/build/classes"/> <path refid="eclipse-sdk-jars"/></path>
现在需要往里面添加
<fileset dir="${hadoop.root}/"> <include name="*.jar"/></fileset>
添加完之后内容如下:
<path id="classpath"> <fileset dir="${hadoop.root}/"> <include name="*.jar"/> </fileset> <pathelement location="${build.classes}"/> <pathelement location="${hadoop.root}/build/classes"/> <path refid="eclipse-sdk-jars"/></path>
保存退出。
第二步:找到
<target name="jar" depends="compile" unless="skip.contrib"></target>
里面原本的内容如下:
<target name="jar" depends="compile" unless="skip.contrib"> <mkdir dir="${build.dir}/lib"/> <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib" verbose="true"/> <jar jarfile="${build.dir}/hadoop-${name}-${version}.jar" manifest="${root}/META-INF/MANIFEST.MF"> <fileset dir="${build.dir}" includes="classes/ lib/"/> <fileset dir="${root}" includes="resources/ plugin.xml"/> </jar> </target>
我们需要把两个copy标签的内容注释掉,然后添加如下内容:
<copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/><copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/>
这里面有个需要注意的地方,所有的jar包需要和你的{hadoop目录}/lib下同名jar包版本保持一致,不同就改成你的lib下的那个版本
添加完毕后,内容如下:
<target name="jar" depends="compile" unless="skip.contrib"> <mkdir dir="${build.dir}/lib"/> <!-- <copy file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/> <copy file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib" verbose="true"/> --><copy file="${hadoop.root}/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar" verbose="true"/><copy file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-mapper-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/jackson-core-asl-1.0.1.jar" todir="${build.dir}/lib" verbose="true"/><copy file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib" verbose="true"/> <jar jarfile="${build.dir}/hadoop-${name}-${version}.jar" manifest="${root}/META-INF/MANIFEST.MF"> <fileset dir="${build.dir}" includes="classes/ lib/"/> <fileset dir="${root}" includes="resources/ plugin.xml"/> </jar></target>
保存退出。
第三步:修改{hadoop目录}/src/contrib/build-contrib.xml
在< project >< /project >标签下添加如下内容:
<property name="version" value="1.0.0"/><property name="ivy.version" value="2.1.0"/><property name="eclipse.home" location="/home/chj/eclipse"/>
第一行指明你的hadoop版本(修改value值),第二行指明ivy的版本(可以不改),第三行指定你的eclipse的目录(修改location值)。
修改完成后,保存退出。
第四步:修改{hadoop目录}/src/contrib/eclipse-plugins/META-INF/MANIFEST.MF
找到Bundle-ClassPath: classes/,lib/hadoop-core.jar这一行
Bundle-ClassPath: classes/, lib/hadoop-core.jar
在后面追加:
,lib/jackson-core-asl-1.0.1.jar ,lib/jackson-mapper-asl-1.0.1.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar
追加后变成:
Bundle-ClassPath: classes/, lib/hadoop-core.jar,lib/jackson-core-asl-1.0.1.jar ,lib/jackson-mapper-asl-1.0.1.jar, lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar, lib/commons-httpclient-3.0.1.jar,lib/commons-cli-1.2.jar
这里的jar的版本也要和你的{hadoop目录}/lib下的同名jar保持保持一致
保存退出。
第五步:在{hadoop目录}/src/contrib/eclipse-plugins/下运行ant或者ant jar
当看到BUILD SUCCESSFUL的时候表示成功
可以看到在BUILD SUCCESSFUL的上一行指明了生成的hadoop-eclipse-plugin-1.0.0.jar的位置。
去该位置将该jar拷贝至你的eclipse目录下的plugins下即可
第六步:启动eclipse
选择window->preferences,选择hadoop map/reduce
在右边的Hadoop installation directory中选择你的hadoop的目录,然后apply->ok
选择window->show view->other,找到MapReduces Tools,选择Map/Reduce Locations,点击ok
然后在eclipse的下方就可以看到Map/Reduce Locations栏,如下图所示:
右键->New Hadoop Location,弹出新建hadooplocation的弹窗
User name需要和你的linux账户名称一致
输入完成后,点击finish
在eclipse左边栏Package Explorer中右键->Show In->Project Explorer,在Project Explorer中就可以看到HDFS Location了
展开就可以看到hdfs中的内容了
- 编译hadoop-eclipse插件并集成到eclipse中去
- 编译hadoop-eclipse插件并测试
- 编译Eclipse hadoop插件
- Hadoop Eclipse插件编译
- 编译hadoop-eclipse插件
- Hadoop-Eclipse插件编译
- hadoop 编译eclipse 插件
- 编译Hadoop-Eclipse插件
- 如何将jboss集成到eclipse中去
- 集成Tomcat插件到Eclipse
- 集成Tomcat插件到Eclipse
- 集成Tomcat插件到Eclipse
- 集成Tomcat插件到Eclipse
- 集成tomcat插件到eclipse
- 集成Tomcat插件到Eclipse
- 集成Tomcat插件到Eclipse
- 编译hadoop的eclipse插件
- 编译hadoop eclipse插件 详解
- (某网络公司笔试题)判断一个点是否在三角形内
- orange_17.09.18学习unity-菜单栏MenuItem
- TypeError: slice indices must be integers or None or have an index method
- three.js
- Java -- 集合Set
- 编译hadoop-eclipse插件并集成到eclipse中去
- MacOS 开发
- Druid数据连接池源码分析
- 【css3】js条件下多次触发同一个css3动画的解决方案
- 在Linux命令行下编写C语言并上传到GitHub
- NOIP2015信息传递解题报告
- int *ptr=(int *)(&a+1)
- 顺序表和链表的优缺点及使用场景
- 【卷积神经网络】tiny-dnn网络参数