歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 基於CentOS 6.2的eclipse-plugin插件各版本編譯方法

基於CentOS 6.2的eclipse-plugin插件各版本編譯方法

日期:2017/2/28 15:29:31   编辑:Linux教程

最近搗鼓cdh雲存儲,由於與eclipse端不兼容,各種神奇,把cdh4降成cdh3u5,然後又降成cdh3u4,總之很煩,後來看到了篇文章關於如何自己編譯eclipse plugin的jar包,然後自己修改修改,在這裡跟大家分享分享

首先,無論你的服務器上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 (cdh4的源碼包中的目錄為/root/hadoop-2.0.0-cdh4.1.1/src/hadoop-mapreduce-project)源代碼目錄, 執行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-cdh3u4.jar 文件.

進入$Hadoop_home/src/contrib/eclipse-plugin 目錄, 執行

ant –Declipse.home=/path/to/eclipse -Dversion=0.20.2-cdh3u4 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 , 我的是CDHu4 的,你在執行完這個之後在$hadoop_home/build/contrib/eclipse-plugin 下面會有一個hadoop-eclipse-plugin-0.20.2-cdh3u4.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版本的. CDHu4 版本用的好像是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 , 查看你對應服務器上的端口配置。

Copyright © Linux教程網 All Rights Reserved