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

編譯hadoop源碼

發布時間: 2022-07-13 06:25:28

㈠ 如何編譯Apache Hadoop2.2.0源代碼

下載hadoop-2.2.0-src.tar.gz 下載。

執行以下命令解壓縮jdk
tar -zxvf hadoop-2.2.0-src.tar.gz

會生成一個文件夾 hadoop-2.2.0-src。源代碼中有個bug,這里需要修改一下,編輯目錄/usr/local/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth中的文件pom.xml,執行以下命令
gedit pom.xml
在第55行下增加以下內容
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>

保存退出即可。

上述bug詳見https://issues.apache.org/jira/browse/HADOOP-10110,在hadoop3中修復了,離我們太遙遠了。

好了,現在進入到目錄/usr/local/hadoop-2.2.0-src中,執行命令
mvn package -DskipTests -Pdist,native,docs
如果沒有執行第4步,把上面命令中的docs去掉即可,就不必生成文檔了。
該命令會從外網下載依賴的jar,編譯hadoop源碼,需要花費很長時間,你可以吃飯了。
在等待n久之後,可以看到如下的結果:
[INFO] Apache Hadoop Main ................................ SUCCESS [6.936s]
[INFO] Apache Hadoop Project POM ......................... SUCCESS [4.928s]
[INFO] Apache Hadoop Annotations ......................... SUCCESS [9.399s]
[INFO] Apache Hadoop Assemblies .......................... SUCCESS [0.871s]
[INFO] Apache Hadoop Project Dist POM .................... SUCCESS [7.981s]
[INFO] Apache Hadoop Maven Plugins ....................... SUCCESS [8.965s]
[INFO] Apache Hadoop Auth ................................ SUCCESS [39.748s]
[INFO] Apache Hadoop Auth Examples ....................... SUCCESS [11.081s]
[INFO] Apache Hadoop Common .............................. SUCCESS [10:41.466s]
[INFO] Apache Hadoop NFS ................................. SUCCESS [26.346s]
[INFO] Apache Hadoop Common Project ...................... SUCCESS [0.061s]
[INFO] Apache Hadoop HDFS ................................ SUCCESS [12:49.368s]
[INFO] Apache Hadoop HttpFS .............................. SUCCESS [41.896s]
[INFO] Apache Hadoop HDFS BookKeeper Journal ............. SUCCESS [41.043s]
[INFO] Apache Hadoop HDFS-NFS ............................ SUCCESS [9.650s]
[INFO] Apache Hadoop HDFS Project ........................ SUCCESS [0.051s]
[INFO] hadoop-yarn ....................................... SUCCESS [1:22.693s]
[INFO] hadoop-yarn-api ................................... SUCCESS [1:20.262s]
[INFO] hadoop-yarn-common ................................ SUCCESS [1:30.530s]
[INFO] hadoop-yarn-server ................................ SUCCESS [0.177s]
[INFO] hadoop-yarn-server-common ......................... SUCCESS [15.781s]
[INFO] hadoop-yarn-server-nodemanager .................... SUCCESS [40.800s]
[INFO] hadoop-yarn-server-web-proxy ...................... SUCCESS [6.099s]
[INFO] hadoop-yarn-server-resourcemanager ................ SUCCESS [37.639s]
[INFO] hadoop-yarn-server-tests .......................... SUCCESS [4.516s]
[INFO] hadoop-yarn-client ................................ SUCCESS [25.594s]
[INFO] hadoop-yarn-applications .......................... SUCCESS [0.286s]
[INFO] hadoop-yarn-applications-distributedshell ......... SUCCESS [10.143s]
[INFO] hadoop-maprece-client ........................... SUCCESS [0.119s]
[INFO] hadoop-maprece-client-core ...................... SUCCESS [55.812s]
[INFO] hadoop-yarn-applications-unmanaged-am-launcher .... SUCCESS [8.749s]
[INFO] hadoop-yarn-site .................................. SUCCESS [0.524s]
[INFO] hadoop-yarn-project ............................... SUCCESS [16.641s]
[INFO] hadoop-maprece-client-common .................... SUCCESS [40.796s]
[INFO] hadoop-maprece-client-shuffle ................... SUCCESS [7.628s]
[INFO] hadoop-maprece-client-app ....................... SUCCESS [24.066s]
[INFO] hadoop-maprece-client-hs ........................ SUCCESS [13.243s]
[INFO] hadoop-maprece-client-jobclient ................. SUCCESS [16.670s]
[INFO] hadoop-maprece-client-hs-plugins ................ SUCCESS [3.787s]
[INFO] Apache Hadoop MapRece Examples .................. SUCCESS [17.012s]
[INFO] hadoop-maprece .................................. SUCCESS [6.459s]
[INFO] Apache Hadoop MapRece Streaming ................. SUCCESS [12.149s]
[INFO] Apache Hadoop Distributed Copy .................... SUCCESS [15.968s]
[INFO] Apache Hadoop Archives ............................ SUCCESS [5.851s]
[INFO] Apache Hadoop Rumen ............................... SUCCESS [18.364s]
[INFO] Apache Hadoop Gridmix ............................. SUCCESS [14.943s]
[INFO] Apache Hadoop Data Join ........................... SUCCESS [9.648s]
[INFO] Apache Hadoop Extras .............................. SUCCESS [5.763s]
[INFO] Apache Hadoop Pipes ............................... SUCCESS [16.289s]
[INFO] Apache Hadoop Tools Dist .......................... SUCCESS [3.261s]
[INFO] Apache Hadoop Tools ............................... SUCCESS [0.043s]
[INFO] Apache Hadoop Distribution ........................ SUCCESS [56.188s]
[INFO] Apache Hadoop Client .............................. SUCCESS [10.910s]
[INFO] Apache Hadoop Mini-Cluster ........................ SUCCESS [0.321s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 40:00.444s
[INFO] Finished at: Thu Dec 26 12:42:24 CST 2013
[INFO] Final Memory: 109M/362M
[INFO] ------------------------------------------------------------------------

㈡ 如何編譯Apache Hadoop2.4.0源代碼

安裝JDK

hadoop是java寫的,編譯hadoop必須安裝jdk。

從oracle官網下載jdk,下載地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,選擇 jdk-7u45-linux-x64.tar.gz下載。

執行以下命令解壓縮jdk

tar -zxvfjdk-7u45-linux-x64.tar.gz

會生成一個文件夾jdk1.7.0_45,然後設置環境變數中。

執行命令 vi/etc/profile,增加以下內容到配置文件中,結果顯示如下

export JAVA_HOME=/usr/java/jdk1.7.0_45

export JAVA_OPTS="-Xms1024m-Xmx1024m"

exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH

保存退出文件後,執行以下命令

source /etc/profile

java –version 看到顯示的版本信息即正確。

安裝maven

hadoop源碼是使用maven組織管理的,必須下載maven。從maven官網下載,下載地址是http://maven.apache.org/download.cgi,選擇 apache-maven-3.1.0-bin.tar.gz 下載,不要選擇3.1下載。

執行以下命令解壓縮jdk

tar -zxvf apache-maven-3.1.0-bin.tar.gz

會生成一個文件夾apache-maven-3.1.0,然後設置環境變數中。

執行命令vi /etc/profile,編輯結果如下所示

MAVEN_HOME=/usr/maven/apache-maven-3.1.0

export MAVEN_HOME

export PATH=${PATH}:${MAVEN_HOME}/bin

保存退出文件後,執行以下命令

source /etc/profile

mvn -version

如果看到下面的顯示信息,證明配置正確了。

㈢ hadoop搭建時為什麼要重新編譯源碼的解釋

把你編譯後的hadoop源碼丟到原來的hadoop集群環境中去 即覆蓋hadoop安裝目錄下的原hadoop-core-xxx.jar 同樣的所有節點都需要更新 然後重啟集群

㈣ linux下,如何在上不了外網的情況下編譯hadoop源碼作為一名學生,真是太愁苦了!!

1.首先確認,你的linux上有沒有安裝ant
2.確認你的 各種環境是否配置正確(不會的話去看hadoop開發指南)
我把我的build.xml發給你
<?xml version="1.0"?>
<!--build.xml - a simple Ant buildfile -->
<project name="Simple Buildfile" default="compile" basedir=".">

<!--Set up the env prefix for environment variable -->
<property environment="env"/>

<!-- The directory cotaining source code -->
<property name="src.dir" value="src" />

<!-- Temporary build directories -->
<property name="build.dir" value="build"/>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="build.lib" value="${build.dir}/lib"/>
<property name="jar.name" value="howtouse.jar"/>

<!-- Hadoop path -->
<property name="hadoop.path" value="${env.HADOOP_HOME}"/>

<!-- Target to create the build directories prior to the -->
<!-- compile target -->
<target name="prepare">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
</target>

<target name="clean" description="Removes all generated files.">
<delete dir="${build.dir}"/>
</target>

<target name="compile" depends="prepare" description="Compiles all source code.">
<javac srcdir="${src.dir}" destdir="${build.classes}" includeantruntime="false"
deprecation="false">
<classpath>
<pathelement location="${hadoop.path}/hadoop-core-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-tools-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/hadoop-examples-0.20.203.0.jar"/>
<pathelement location="${hadoop.path}/lib/mockito-all-1.8.5.jar"/>
<pathelement location="${hadoop.path}/lib/junit-4.5.jar"/>
<pathelement location="${hadoop.path}/lib/commons-math-2.1.jar"/>
<pathelement location="${hadoop.path}/lib/commons-cli-1.2.jar"/>
<pathelement location="${hadoop.path}/contrib/datajoin/hadoop-datajoin-0.20.203.0.jar"/>
</classpath>
</javac>
</target>

<target name="jar" depends="compile" description="Generates jar in the dist directory.">
<!-- Exclude unit tests from the final Jar file -->
<jar jarfile="${jar.name}" basedir="${build.classes}" excludes="**/*Test.class"/>

</target>

<target name="all" depends="clean,jar" description="Cleans,compiles,then builds the Jar file."/>

</project>

確保以上條件後
1.將自己寫的java文件放到 /home/hadoop/ant/build/src 使用XFTP
2.在HDFS中新建一個文件目錄專門用來裝資源文件 hadoop fs -mkdir /user/src
3.將simple.txt測試文件放到HDFS中 hadoop fs -put/user/src
4.將/home/hadoop/ant/build/src下的java文件編譯打包成play.jar(名字由build.xml決定)
方法:編譯之前必須保證與build.xml同級目錄下 ant jar
5.hadoop單機模式運行的時候必須保證在lib目錄下
hadoop jar play.jar hadoop/MaxTemperature /user/src/simple.txt output

㈤ 如何用ant編譯hadoop-1.2.1源碼

1、安裝ant 2、安裝m4 3、安裝autoconf 4、安裝automake 5、安裝libtool 6、安裝ant vi /etc/profile export ANT_HOME=%ANT% export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH source /etc/profile 7、安裝eclipse 8、解壓Hadoop文件,並修改配置文件 取消ivy-download %hadoop%/src/contrib/build-contrib.xml 添加hadoop的version和eclipse的eclipse.home屬性 <!-- hadoop版本、eclipse安裝路徑 --> <property name="version"value="1.1.2"/> <property name="eclipse.home"location="%eclipse%"/> 編輯%HADOOP_HOME%/build.xml 修改hadoop版本號 取消ivy-download %hadoop%/src/contrib/eclipse-plugin/build.xml 取消ivy-download: 添加將要打包到plugin中的第三方jar包列表 <!-- 自定義的修改內容:begin --> <!-- < file="${hadoop.root}/build/hadoop-core-${version}.jar" tofile="${build.dir}/lib/hadoop-core.jar"verbose="true"/> < file="${hadoop.root}/build/ivy/lib/Hadoop/common/commons-cli-${commons-cli.version}.jar" todir="${build.dir}/lib"verbose="true"/> --> < file="${hadoop.root}/hadoop-core-${version}.jar"tofile="${build.dir}/lib/hadoop-core.jar"verbose="true"/> < file="${hadoop.root}/lib/commons-cli-1.2.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-configuration-1.6.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-httpclient-3.0.1.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/commons-lang-2.4.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/jackson-core-asl-1.8.8.jar" todir="${build.dir}/lib"verbose="true"/> < file="${hadoop.root}/lib/jackson-mapper-asl-1.8.8.jar" todir="${build.dir}/lib"verbose="true"/> <!-- 自定義的修改內容:end --> 修改%hadoop%/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF 修改${HADOOP_HOME}/src/contrib/eclipse-plugin/META-INF/MANIFEST.MF的Bundle-ClassPath: Bundle-ClassPath: classes/, lib/hadoop-core.jar, lib/commons-cli-1.2.jar, lib/commons-configuration-1.6.jar, lib/commons-httpclient-3.0.1.jar, lib/commons-lang-2.4.jar, lib/jackson-core-asl-1.8.8.jar, lib/jackson-mapper-asl-1.8.8.jar 9、執行ANT (編譯源代碼) 進入到%hadoop%/執行ant compile 10、進入到%hadoop%/build/contrib/eclipse-plugin/執行 ant jar (生成elipse插件)

㈥ 怎麼使用eclipse編譯hadoop源碼

使用eclipse編譯hadoop源碼

1,建立一個Hadoop源碼文件夾。
2、svn 檢出hadoop1.0.4的源碼。svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.4
注意:如果在ubuntu下直接上面語句報錯,可能需要執行下面的語句
sudo apt-get install autoconf
sudo apt-get install libtool
3、在檢出完成後的目錄下執行
ant eclipse.然後將源碼導入到eclipse中。
4、修改 release-1.0.4/src/contrib/gridmix/src/Java/org/apache/hadoop/mapred/gridmix/Gridmix.java
將兩處的 Enum<? extends T> 改成 Enum<?>

5、編譯器設置及編譯。
右擊工程名,Properties-->Builders-->New--->Ant Builder
New_Builder --> Edit: Name: hadoop-Builder.Main:Builderfile(builder.xml的位置):/home/nacey/workspace/source-workspace/hadoop-1.0.4;Targets—>Manual Build: jar
然後選擇菜單Project-->Build Project

在/home/nacey/workspace/source-workspace/hadoop-1.0.4/build文件夾下會生成三個開發 jar 包:

hadoop-client-1.0.4-SNAPSHOT.jar
hadoop-core-1.0.4-SNAPSHOT.jar
hadoop-minicluster-1.0.4-SNAPSHOT.jar

去掉"-SNAPSHOT"即可替換hadoop-1.0.4 下的同名 jar 包.

注意如果要在集群中使用自己編譯的jar,則需要替換集群中的所有機器。不然會出現版本不匹配。

㈦ 為什麼編譯 hadoop 源碼

編譯了hadoop,可以方便的查看某個函數的實現。如果不編譯就只是自己去翻源代碼了。更重要的是如果你編譯了hadoop,你可以根據自己的需要改動hadoop的某些實現機制。(hadoop開源的好處)

㈧ 如何在CentOS6.5下編譯64位的Hadoop2.x

一、預先安裝必要軟體

1、需要的軟體:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmake
檢測系統中是否已安裝了某一軟體命令:rpm -qa|grep 軟體名,如檢測系統中是否安裝了svn:

$ rpm -qa|grep svn
2、如果已安裝,則跳過,如果沒有安裝,用命令:yum install svn進行安裝,如:

$ yum install svn
如果yum命令安裝失敗(找不到相應的包),則需手動下載相應的軟體包進行安裝,比如maven, protobuf這兩個個軟體;

二、安裝maven

1、軟體包:apache-maven-3.0.5-bin.tar.gz
不要使用最新的Maven3.1.1,與Maven3.0.x存在兼容性問題,所以老是出現java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之類的錯誤。選擇3.0.5版本:apache-maven-3.0.5-bin.tar.gz
將apache-maven-3.0.5-bin.tar.gz移動到/usr目錄(軟體包所在目錄):
# mv ./apache-maven-3.0.5-bin.tar.gz /usr
進入/usr目錄,解壓(/usr目錄):
# tar –zxvf apache-maven-3.0.5-bin.tar.gz ./
刪除解壓後的壓縮包(/usr目錄):
# rm –rf apache-maven-3.0.5-bin.tar.gz
將/usr / apache-maven-3.0.5/bin加到環境變數中
# vi /etc/profile
在PATH行的最後加上「:/usr/apache-maven-3.0.5/bin」
2、使配置生效:

# source /etc/profile
驗證是否安裝成功:

# mvn –version

三、安裝protobuf
1、軟體包:protobuf-2.5.0.tar.gz
將protobuf-2.5.0.tar.gz移動到/usr目錄(軟體包所在目錄):
# mv ./ protobuf-2.5.0.tar.gz /usr
進入/usr目錄,解壓(/usr目錄):

# tar –zxvf protobuf-2.5.0.tar.gz ./
刪除解壓後的壓縮包(/usr目錄):

# rm –rf protobuf-2.5.0.tar.gz
進入/usr/protobuf-2.5.0目錄:
# cd /usr/protobuf-2.5.0
2、依次執行下列命令:
# ./configure
# make
# make check
# make install
檢測是否安裝成功:
# protoc --version
四、下載hadoop-2.2.0源碼並編譯

在/usr目錄進行
用svn下載hadoop-2.2.0源碼,命令:
$ svn checkout 'http://svn.apache.org/repos/asf/hadoop/common/tags/release-2.2.0'
源碼下載完成後,在/usr目錄下會有一個release-2.2.0目錄,進入該目錄:
$ cd /usr/release-2.2.0
$ ls –la

編譯源碼:
$ mvn package -Pdist,native -DskipTests –Dtar --不生成文檔
$ mvn package -Pdist,native,docs,src -DskipTests –Dtar --生成文檔,需要安裝findbugs,並設置FINDBUGS_HOME環境變數
編譯的時間比較久,編譯過程中會聯網下載所需要的包,機子沒聯網是不會成功編譯的。
編譯結束,最後列印的信息如下,每一項均是『SUCCESS』,則編譯成功:

編譯好的代碼包在/usr/release-2.2.0/hadoop-dist/target目錄下:
$ cd /usr/release-2.2.0/hadoop-dist/target
$ ls –la
因為是在64位系統下編譯的,所以編譯出來的代碼包是64位版本的;可以直接將/usr/release-2.2.0/hadoop-dist/target目錄下的hadoop-2.2.0或者hadoop-2.2.0.tar.gz拷貝到其他linux64位平台進行搭建hadoop集群。

說明:
1、 機器得連網,如果沒聯網找可以聯網的機器下載,但是編譯時還是要下載一些東西,所以,實在不行。最好找相同平台(可以是虛擬機)能上網的機器做下面工作,弄好了再把編譯好的代碼包拷回來。
2、 命令操作中,『#』開頭的是在root用戶進行,『$』開頭的是在普通用戶下進行

㈨ 為什麼要編譯 hadoop 源碼 怎麼在eclipse里寫hadoop程序啊~ 上不了外網,hadoop源碼編譯不了,該怎麼

1:編譯了hadoop,可以方便的查看某個函數的實現。如果不編譯就只是自己去翻源代碼了。更重要的是如果你編譯了hadoop,你可以根據自己的需要改動hadoop的某些實現機制。(hadoop開源的好處).
2:編程hadoop程序是不需要編譯hadoop源碼的。你可以參看網上hadoop安裝教程。
關於hadoop編程,歡迎訪問我的博客:http://blog.csdn.net/jackydai987

㈩ hadoop源碼修改了,編譯成功後,將編譯後的hadoop文件直接拿來搭建么,還是需要經過什麼處理呢

把你編譯後的hadoop源碼丟到原來的hadoop集群環境中去 即覆蓋hadoop安裝目錄下的原hadoop-core-xxx.jar 同樣的所有節點都需要更新 然後重啟集群

熱點內容
scraino編程 發布:2025-02-08 11:59:41 瀏覽:263
我的世界伺服器進不去該怎麼辦 發布:2025-02-08 11:47:41 瀏覽:234
linux的telnet 發布:2025-02-08 11:47:36 瀏覽:286
壓縮袋打折 發布:2025-02-08 11:46:02 瀏覽:257
c語言結構體題目 發布:2025-02-08 11:46:01 瀏覽:336
如何svn限制一些外網不能訪問 發布:2025-02-08 11:46:00 瀏覽:990
伺服器外網ip咋配置 發布:2025-02-08 11:42:19 瀏覽:641
最優樹演算法 發布:2025-02-08 11:37:19 瀏覽:229
linux保存路由 發布:2025-02-08 11:36:25 瀏覽:557
M合成演算法 發布:2025-02-08 11:26:22 瀏覽:329