设为首页 收藏本站
查看: 732|回复: 0

[经验分享] 各版本编译hadoop eclipse plugin

[复制链接]

尚未签到

发表于 2016-12-6 11:18:55 | 显示全部楼层 |阅读模式
  转自:http://www.gemini5201314.net/hadoop/%E5%90%84%E7%89%88%E6%9C%AC%E7%BC%96%E8%AF%91hadoop-eclipse-plugin.html
  最近一直在使用mapr版本的hadoop, 然后用的karmasphere 的eclipse plugin . 突然想找一个eclipse IDE 连接一下Cloudera 版本的方便一下操作,结果就悲剧了.
  首先是各个版本的eclipse plugin 不兼容. 网上找的各种编译好的,自己编译的都是家家有本难念的经啊.什么Apache Hadoop 0.20.2 , Apache Hadoop 0.20.3 ,Apache Hadoop 0.20.5 ,Cloudera CDH CDH3 , CDHu1 , CDHu2 , eclipse 的各个版本不兼容. 花了几天的时间查看了网上的各种解决方法之后终于搞明白了到底每个版本怎么回事了.
  首先,无论你的服务器上Hadoop 使用的是什么版本,你都需要下载对应的这个版本的源代码包进行编译. 你是Apache Hadoop 0.20.2 就去Apache 下0.20.2 的,你是Apache 0.21 版本的就去下0.21 版本的. 你是Cloudera CHDu.x 版本的,就去Cloudera 网站上下它的CDHu.x  版本对应的tar 包. 确保你要连接的服务器版本和你打算编译的eclipse-plugin版本是一致的.
  在自己编译eclipse-plugin之前,你需要apache-ant, apache-maven, apache-ivy如果你打算编译整个包括hadoop的服务器版本并生成二进制包,你还需要apache-forrest 用来输出文档. ant,maven,forrest 的安装跟java 的安装没有区别,解压,然后添加对应的bin目录到path 变量. ivy 的安装就是添加一个apache-ivy-xxx.jar 到你的ant  安装目录下的lib 目录. 这些前提工具就算安装好了.
  然后从命令行进入你解压的$hadoop_home 源代码目录, 执行ant compile-core , 这个会编译基础的hadoop-core 包. 注意如果你是在linux 下这个命令不会报错,但是如果你是windows 会报can’t run  program mvn , 在对应的build.xml 文件的42 行,你需要进入$Hadoop_home/build.xml 文件的42行,修改
  <exec  executable="mvn"  xxxxxxxxxxxxxxxxxxxxx
  改成 <exec  executable="mvn.bat"  xxxxxxxxxxxxxxxxxx
  如果你打算编译整个包的话对应的1230  行里面的forrest 在windows 下同样会出现这个错误.
  然后你需要将$Hadoop_home 下面的hadoop-core-xxx.jar 文件拷贝到$Hadoop_home/build 目录下. 你是什么版本的就拷贝对应版本的hadoop-core-xxx.jar 文件. 比如我编译的是hadoop-core-0.20.2-cdh3u2.jar 文件.
  进入$Hadoop_home/src/contrib/eclipse-plugin 目录, 执行
  ant –Declipse.home=/path/to/eclipse  -Dversion=0.20.2-cdh3u2 jar
  注意,如果你没有执行前面一步的copy 工作,你会报错找不到build/hadoop-core-xxx.jar 文件. 你也可以修改对应eclipse-plugin 目录下的build.xml 文件的69行左右对应的两个copy 任务.
  <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 的这些文件能够在对应的目录找到. 如果你是0.21 版本的apache-hadoop ,由于0.21 版本完全maven 化了. 你可能需要添加hadoop-core-xxx , hadoop-mapreduce-xxx.jar hadoop-hdfs-xxx.jar , 我的是CDHu2 的,你在执行完这个之后在$hadoop_home/build/contrib/eclipse-plugin 下面会有一个hadoop-eclipse-plugin-0.20.2-cdh3u2.jar 的文件. 不过这个文件是不能用的,会提示你差一些jar 文件. 你需要添加 jackson-core-asl-xxx.jar , jackson-mapper-asl-xxx.jar , commons-httpclient-xxx.jar 文件. 具体的version 你需要到$hadoop_home/lib 目录下自己找. apache-hadoop 0.20.205 版本的好像用的是jackson-core-1.0.1版本的. CDHu2 版本用的好像是jackson-core-1.5.2 版本的.
  <copy file="${hadoop.root}/lib/jackson-core-asl-1.5.2.jar" todir="${build.dir}/lib" verbose="true"/>
  <copy file="${hadoop.root}/lib/jackson-mapper-asl-1.5.2.jar" todir="${build.dir}/lib" verbose="true"/>
  <copy file="${hadoop.root}/lib/commons-httpclient-3.1.jar" todir="${build.dir}/lib" verbose="true"/>
  编译好之后放在eclipse 的dropin 目录下就可以了.
  注意连接的时候MapReduce-Master port  别和DFS port 填反了,不然会报fail to open /xxxx 的错误. 默认安装的时候应该是mapreduce 是8021 , dfs  是8020 , 查看你对应服务器上的端口配置.

  上图就是我用来连接DFS的,Cloudera 版本里面默认有一个界面的hive GUI 叫beeswax 的.
  搞了这么半天发现终于编译成功之后,发现这个eclipse-plugin 功能还是挺弱的. 主要是Karmasphere 的免费版不支持Clouder3 更新包,然后它不能ssh 连远程主机. 其他的Professional 版本还是只适合非常熟练的开发人员.
  参考资料:
  我在jira 上加了两个comment:
  https://issues.apache.org/jira/browse/HADOOP-7382
  https://issues.apache.org/jira/browse/MAPREDUCE-3029
  CDHu1 版本的. 我下了好像不能用
  http://heipark.iyunv.com/blog/1178756
  cloudera 的人解释如何编译和安装cdh 版本的eclipse (墙外)
  https://groups.google.com/a/cloudera.org/group/cdh-user/browse_thread/thread/99d20f1711f680b7

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-310498-1-1.html 上篇帖子: Hadoop环境搭建——集群篇 .docx 下篇帖子: hadoop eclipse插件编译(1.2.1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表