當前位置:首頁 » 編程軟體 » ant編譯hadoop

ant編譯hadoop

發布時間: 2023-03-01 02:41:11

『壹』 如何在CentOS6.5下編譯64位的Hadoop2.x

1,安裝gcc,執行如下的幾個yum命令即可

java代碼

yum -y install gcc

yum -y install gcc-c++

yum install make

yum install autoconf automake libtool cmake ncurses-devel openssl-devel gcc*

2,安裝JDK,並設置環境變數,完成後測試安裝成功否

Java代碼

[root@ganglia ~]# java -version

java version "1.5.0"

gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-4)

Copyright (C) 2007 Free Software Foundation, Inc.

This is free software; see the source for ing conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@ganglia ~]#

3, 安裝Maven,安裝完成後測試安裝與否

Java代碼

[root@ganglia ~]# mvn -v

Apache Maven 3.2.1 (; 2014-02-15T01:37:52+08:00)

Maven home: /usr/local/maven

Java version: 1.7.0_25, vendor: Oracle Corporation

Java home: /usr/local/jdk1.7.0_25/jre

Default locale: zh_CN, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"

[root@ganglia ~]#

4, 安裝Ant, 安裝完成後,依舊測試成功與否

Java代碼

[root@ganglia ~]# ant -version

Apache Ant(TM) version 1.9.4 compiled on April 29 2014

[root@ganglia ~]#

5,安裝protobuf,安裝方式,從官網下載tar.gz的包,並上傳到linux上解壓,然後進入根目錄下,執行如下的幾個命令:

Java代碼

./configure

make

make check

make install

然後,執行如下命令,進行測試安裝成功與否

Java代碼

[root@ganglia protobuf-2.5.0]# protoc

Missing input file.

[root@ganglia protobuf-2.5.0]#

6,從hadoop官網下載hadoop2.2.0的版本的源碼的src的包,並查看目錄

Java代碼

[root@ganglia ~]# cd hadoop-2.2.0-src

[root@ganglia hadoop-2.2.0-src]# ll

總用量 108

-rw-r--r--. 1 67974 users 9968 10月 7 2013 BUILDING.txt

drwxr-xr-x. 2 67974 users 4096 10月 7 2013 dev-support

drwxr-xr-x. 4 67974 users 4096 6月 9 17:05 hadoop-assemblies

drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-client

drwxr-xr-x. 9 67974 users 4096 6月 9 17:14 hadoop-common-project

drwxr-xr-x. 3 67974 users 4096 6月 9 17:26 hadoop-dist

drwxr-xr-x. 7 67974 users 4096 6月 9 17:20 hadoop-hdfs-project

drwxr-xr-x. 11 67974 users 4096 6月 9 17:25 hadoop-maprece-project

drwxr-xr-x. 4 67974 users 4096 6月 9 17:06 hadoop-maven-plugins

drwxr-xr-x. 3 67974 users 4096 6月 9 17:27 hadoop-minicluster

drwxr-xr-x. 4 67974 users 4096 6月 9 17:03 hadoop-project

drwxr-xr-x. 3 67974 users 4096 6月 9 17:05 hadoop-project-dist

drwxr-xr-x. 12 67974 users 4096 6月 9 17:26 hadoop-tools

drwxr-xr-x. 4 67974 users 4096 6月 9 17:24 hadoop-yarn-project

-rw-r--r--. 1 67974 users 15164 10月 7 2013 LICENSE.txt

-rw-r--r--. 1 67974 users 101 10月 7 2013 NOTICE.txt

-rw-r--r--. 1 67974 users 16569 10月 7 2013 pom.xml

-rw-r--r--. 1 67974 users 1366 10月 7 2013 README.txt

[root@ganglia hadoop-2.2.0-src]#

7,修改/root/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml文件,增加,補丁內容,這部分是hadoop2.2.0的bug,如果是其他的2.x的版本,可以視情況而定,內容如下:

Xml代碼

<dependency>

<groupId>org.mockito</groupId>

<artifactId>mockito-all</artifactId>

<scope>test</scope>

</dependency>

<!--新增的內容開始 -->

<dependency>

<groupId>org.mortbay.jetty</groupId>

<artifactId>jetty-util</artifactId>

<scope>test</scope>

</dependency>

<!--新增的內容結束 -->

<dependency>

<groupId>org.mortbay.jetty</groupId>

<artifactId>jetty</artifactId>

<scope>test</scope>

</dependency>

8,修改完畢後,回到hadoop-2.2.0-src的跟目錄下執行編譯打包命令:

Java代碼

mvn clean

mvn package -Pdist,native -DskipTests -Dtar

然後等待半個小時左右的編譯時間,網速快的話,時間可能會更短,編譯完成 編譯好的hadoop包,

Java代碼

[root@ganglia target]# pwd

/root/hadoop-2.2.0-src/hadoop-dist/target

[root@ganglia target]# ll

總用量 282348

編譯完成後的本地庫,位於如下位置,並查看本地庫支持位數:

至此,我們的編譯已經,成功完成,然後,我們就可以使用在target目錄下,編譯生成的hadoop新的tar.gz包,來部署我們的hadoop集群。

『貳』 如何使用ANT在命令行進行編譯和測試

一、環境變數
在網上找到ANT的壓縮包,解壓縮以後放到C盤根目錄如下圖

對,就是這個鬼樣子,放在這里就可以用了,不用安裝之類的
環境變數如下圖:

你要定義ANT_HOME,然後讓系統path找到這個ANT_HOME就行了

二、寫build.xml

你的目錄結構如下圖:

源文件 放在src
引用的jar包放在lib
編譯結果安排在classes

接下來就是build.xml了
如下,自己看吧

[html] view plain
<?xml version="1.0"?>
<project name="pojo_0428" default="prepare" basedir=".">

<property name="source.root" value="src"/>
<property name="class.root" value="classes"/>
<property name="lib.dir" value="lib"/>

<!-- class path for compilation and execution -->
<path id="basepath">
<!-- 運行時 class文件的位置 -->
<pathelement location="${class.root}" />
<!-- jar包 -->
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>

<!--默認的target -->
<target name="prepare">
<delete dir="${class.root}"/>
<mkdir dir="${class.root}"/>
</target>

<!--編譯 -->
<target name="compile" depends="prepare">
<javac srcdir="${source.root}"
destdir="${class.root}"
debug="on"
optimize="off"
deprecation="on">
<classpath refid="basepath"/>
</javac>
</target>
<!--執行。 案常式序的入口 依賴 compile -->
<target name="run" depends="compile">
<java classname="com.javathink.Student" fork="true">
<classpath refid="basepath"/>
</java>
</target>

</project>

『叄』 如何重新編譯hadoop jar包

重新編譯hadoop jar包:
編譯打包
由於hadoop打包時需要依賴於操作系統的底層。
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install autotool
sudo apt-get install libtool
4.安裝jdk1.5 和apache-forrest-0.8
打包命令:ant package -Djava5.home=/home/rongneng/env/jdk1.5.0_22 -Dforrest.home=/home/rongneng/env/apache-forrest-0.8

『肆』 用ant將程序編譯和運行,都要做什麼工作

ant是apache項目組的一個子項目,是一個基於java的構建工具。ant本身用java實現,要構建的工程的配置文件用xml格式描述,可以很方便的實現跨平台構建工作。
ant 可以從http://ant.apache.org下載,目前最新版本為1.5.4。下載完畢後直接解壓縮到一個目錄,例如D:\ant。

下一步我們需要設置如下的環境變數:
ANT_HOME:ant的安裝目錄,如果按上面方法解壓縮了ant,那麼這個值應該設為D:\ant
JAVA_HOME:jdk的安裝目錄
PATH:把%ANT_HOME%\bin目錄加到path變數,以便於從命令行直接運行ant。

(1)建立build.xml

用ant編譯規模較大的工程非常方便,每個工程都對應一個build.xml文件,這個文件包含與這個工程有關的路徑信息和構建任務。

下面是一個最簡單的build.xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="projectTemplate" default="init" basedir=".">
<target name="init" >
<property name="lib.dir" value="lib"/>
<echo message="Hello ,lib.dir is set to ${lib.dir}" >
</echo>
</target>
</project>

每個build.xml有且僅有一個project,每個project下面可以包含多個target,每個target表示一個小的任務,每個任務負責執行一段腳本。ant有內置任務集可供使用,例如上面的echo就是在console上顯示消息。

更詳細的內置任務請參考http://ant.apache.org/manual/coretasklist.html

${lib.dir}表示引用一個名字叫做lib.dir的屬性值,這個屬性的值就是lib。

(2)運行ant

使用ant.bat可以直接運行ant,如果不帶任何參數,ant會在當前路徑下搜索build.xml文件,如果找到了這個文件,就運行project的default屬性指定的target.我們也可以帶參數來運行ant,以便選擇build.xml文件和要運行的target:

ant -buildfile c:\demo\build.xml init

表示運行c:\demo\build.xml 中名字為init的target

(3)ant的目標依賴

target有一個屬性depends,在其中可以指定一系列的target名字,表示在執行該target前,必須首先執行的一系列其它target。depends具有傳遞性,例如:targetA depends targetB,而targetB depends targetC和targetD,這樣在執行targetA之前,首先執行C和D,然後執行B,最後才會執行A。

下面是個簡單的例子,在執行編譯的動作前,首先需要建立一個目標代碼存放的目錄,然後再執行編譯。

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="project" default="init" basedir=".">
<target name="init" >
<property name="dist" value="dist"/>
<mkdir dir="${dist}" />
</target>
<target name="build" depends="init">
<javac srcdir="SourceCode" destdir="${dist}">
</javac>
</target>
</project>

『伍』 hadoop1.2.1+eclipse: 執行ant編譯錯誤提示:

.在Eclipse中執行Ant的腳本編譯出現問題
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-19
11:40

信息如下:
compile:
[javac]
Compiling 15 source files to
E:\work_home\OakingSecurity\build\classes
[javac] BUILD FAILED:
file:E:/work_home/OakingSecurity/build.xml:48: Unable to find a javac
compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps
JAVA_HOME does not point to the
JDK

我的系統變數設置了JAVA_HOME的,在命令行直接運行ant都沒有問題。
請問這是怎麼回事?是不是還要在Eclipse中設置什麼?

2.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: fengyifan
Posted on: 2003-08-19
21:49

put tools.jar in ant classpath

3.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: babyoracle
Posted on: 2003-08-20
07:42

用這個方法就可以了
http://www.cjsdn.com/post/view?bid=7&id=45620&sty=3&tpg=1&age=0

4.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:03

在Eclipse的首選項中可以配置ANT_HOME,但又出現如下錯誤:

BUILD FAILED:
java.lang.VerifyError: (class:
org/apache/xerces/parsers/IntegratedParserConfiguration, method:
configurePipeline signature: ()V) Incompatible type for getting or setting
field
Total time: 94 milliseconds

為什麼?

5.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: feng]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:12

feng wrote:
put tools.jar in ant
classpath

用Eclipse默認的ANT選項,然後加上tools.jar是可以了,不過它又提示不支持junit任務,暈倒~

[junit]
BUILD FAILED: file:E:/work_home/OakingSecurity/build.xml:76: Could not create
task or type of type: junit.

Ant could not find the task or a class this
task relies upon.

而我用自己下載的Ant1.5.3又出現前面帖子的錯誤提示,為什麼?

6.Re:在Eclipse中執行Ant的腳本編譯出現問題 [Re: njord]
Copy
to clipboard

Posted by: njord
Posted on: 2003-08-22
13:19

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:746
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1007
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:715
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:875
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1122
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:347
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:225
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:873