目次
2. 安装依赖

hadoop2.4.0源码编译

Jun 07, 2016 pm 03:12 PM
序文 ソースコード コンパイル

1.前言 Hadoop-2.4.0 的源码目录下有个 BUILDING.txt 文件,它介绍了如何在 Linux 和 Windows 下编译源代码,本文基本是遵照 BUILDING.txt 指示来操作的,这里再做一下简单的提炼。 第一次编译要求能够访问互联网, Hadoop 的编译依赖非常多的东西,一定要保

1. 前言

Hadoop-2.4.0的源码目录下有个BUILDING.txt文件,它介绍了如何在LinuxWindows下编译源代码,本文基本是遵照BUILDING.txt指示来操作的,这里再做一下简单的提炼。

第一次编译要求能够访问互联网,Hadoop的编译依赖非常多的东西,一定要保证机器可访问互联网,否则难逐一解决所有的编译问题,但第一次之后的编译则不用再下载了。

2. 安装依赖

在编译Hadoop 2.4.0源码之前,需要将下列几个依赖的东西安装好:

1) JDK 1.6或更新版本(本文使用JDK1.7请不要安装JDK1.8版本,JDK1.8Hadoop 2.4.0不匹配,编译Hadoop 2.4.0源码时会报很多错误

2) Maven 3.0或更新版本

3) ProtocolBuffer 2.5.0

4) CMake 2.6或更新版本

5) Findbugs 1.3.9,可选的(本文编译时未安装)

 

在安装好之后,还需要设置一下环境变量,可以修改/etc/profile,也可以是修改~/.profile,增加如下内容:

export JAVA_HOME=/root/jdk

export CLASSPATH=$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

 

export CMAKE_HOME=/root/cmake

export PATH=$CMAKE_HOME/bin:$PATH

 

export PROTOC_HOME=/root/protobuf

export PATH=$PROTOC_HOME/bin:$PATH

 

export MAVEN_HOME=/root/maven

export PATH=$MAVEN_HOME/bin:$PATH

 

本文以root用户在/root目录下进行安装,但实际可以选择非root用户及非/root目录进行安装。

 

2.1. 安装ProtocolBuffer

标准的automake编译安装方式:

1) cd /root

2) tar xzf protobuf-2.5.0.tar.gz

3) cd protobuf-2.5.0

4) ./conigure --prefix=/root/protobuf

5) make

6) make install

2.2. 安装CMake

1) cd /root

2) tar xzf cmake-2.8.12.2.tar.gz

3) cd cmake-2.8.12.2

4) ./bootstrap --prefix=/root/cmake

5) make

6) make install

2.3. 安装JDK

1) cd /root

2) tar xzf jdk-7u55-linux-x64.gz

3) cd jdk1.7.0_55

4) ln -s jdk1.7.0_55 jdk

2.4. 安装Maven

1) cd /root

2) tar xzf apache-maven-3.0.5-bin.tar.gz

3) ln -s apache-maven-3.0.5 maven

3. 编译Hadoop源代码

完成上述准备工作后,即可通过执行命令:mvn package -Pdist -DskipTests -Dtar,启动对Hadoop源代码的编译。请注意一定不要使用JDK1.8

 

如果需要编译成本地库(Native Libraries)文件,则使用命令:mvn package -Pdist,native -DskipTests -Dtar。如果C/C++程序需要访问HDFS等,需要使用navite方式编译生成相应的库文件。也可以使用mvn package -Pnative -DskipTests -Dtar特意编译出本地库文件。

相关的编译命令还有:

1) mvn package -Pdist -DskipTests -Dtar

2) mvn package -Pdist,native,docs,src -DskipTests -Dtar

3) mvn package -Psrc -DskipTests

4) mvn package -Pdist,native,docs -DskipTests -Dtar

5) mvn clean site; mvn site:stage -DstagingDirectory=/tmp/hadoop-site

 

编译成功后,jar文件会放在target子目录下,可以在Hadoop源码目录下借用find命令搜索各个target子目录。

编译成功后,会生成Hadoop二进制安装包hadoop-2.4.0.tar.gz,放在源代码的hadoop-dist/target子目录下:

main:

     [exec] $ tar cf hadoop-2.4.0.tar hadoop-2.4.0

     [exec] $ gzip -f hadoop-2.4.0.tar

     [exec] 

     [exec] Hadoop dist tar available at: /root/hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0.tar.gz

     [exec] 

[INFO] Executed tasks

[INFO] 

[INFO] --- maven-javadoc-plugin:2.8.1:jar (module-javadocs) @ hadoop-dist ---

[INFO] Building jar: /root/hadoop-2.4.0-src/hadoop-dist/target/hadoop-dist-2.4.0-javadoc.jar

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO] 

[INFO] Apache Hadoop Main ................................ SUCCESS [4.647s]

[INFO] Apache Hadoop Project POM ......................... SUCCESS [5.352s]

[INFO] Apache Hadoop Annotations ......................... SUCCESS [7.239s]

[INFO] Apache Hadoop Assemblies .......................... SUCCESS [0.424s]

[INFO] Apache Hadoop Project Dist POM .................... SUCCESS [2.918s]

[INFO] Apache Hadoop Maven Plugins ....................... SUCCESS [6.261s]

[INFO] Apache Hadoop MiniKDC ............................. SUCCESS [5.321s]

[INFO] Apache Hadoop Auth ................................ SUCCESS [5.953s]

[INFO] Apache Hadoop Auth Examples ....................... SUCCESS [3.783s]

[INFO] Apache Hadoop Common .............................. SUCCESS [1:54.010s]

[INFO] Apache Hadoop NFS ................................. SUCCESS [9.721s]

[INFO] Apache Hadoop Common Project ...................... SUCCESS [0.048s]

[INFO] Apache Hadoop HDFS ................................ SUCCESS [4:15.270s]

[INFO] Apache Hadoop HttpFS .............................. SUCCESS [6:18.553s]

[INFO] Apache Hadoop HDFS BookKeeper Journal ............. SUCCESS [16.237s]

[INFO] Apache Hadoop HDFS-NFS ............................ SUCCESS [6.543s]

[INFO] Apache Hadoop HDFS Project ........................ SUCCESS [0.036s]

[INFO] hadoop-yarn ....................................... SUCCESS [0.051s]

[INFO] hadoop-yarn-api ................................... SUCCESS [1:35.227s]

[INFO] hadoop-yarn-common ................................ SUCCESS [43.216s]

[INFO] hadoop-yarn-server ................................ SUCCESS [0.055s]

[INFO] hadoop-yarn-server-common ......................... SUCCESS [16.476s]

[INFO] hadoop-yarn-server-nodemanager .................... SUCCESS [19.942s]

[INFO] hadoop-yarn-server-web-proxy ...................... SUCCESS [4.926s]

[INFO] hadoop-yarn-server-applicationhistoryservice ...... SUCCESS [9.804s]

[INFO] hadoop-yarn-server-resourcemanager ................ SUCCESS [23.320s]

[INFO] hadoop-yarn-server-tests .......................... SUCCESS [1.208s]

[INFO] hadoop-yarn-client ................................ SUCCESS [9.177s]

[INFO] hadoop-yarn-applications .......................... SUCCESS [0.113s]

[INFO] hadoop-yarn-applications-distributedshell ......... SUCCESS [4.106s]

[INFO] hadoop-yarn-applications-unmanaged-am-launcher .... SUCCESS [3.265s]

[INFO] hadoop-yarn-site .................................. SUCCESS [0.056s]

[INFO] hadoop-yarn-project ............................... SUCCESS [5.552s]

[INFO] hadoop-mapreduce-client ........................... SUCCESS [0.096s]

[INFO] hadoop-mapreduce-client-core ...................... SUCCESS [37.231s]

[INFO] hadoop-mapreduce-client-common .................... SUCCESS [27.135s]

[INFO] hadoop-mapreduce-client-shuffle ................... SUCCESS [4.886s]

[INFO] hadoop-mapreduce-client-app ....................... SUCCESS [17.876s]

[INFO] hadoop-mapreduce-client-hs ........................ SUCCESS [14.140s]

[INFO] hadoop-mapreduce-client-jobclient ................. SUCCESS [11.305s]

[INFO] hadoop-mapreduce-client-hs-plugins ................ SUCCESS [3.083s]

[INFO] Apache Hadoop MapReduce Examples .................. SUCCESS [9.855s]

[INFO] hadoop-mapreduce .................................. SUCCESS [5.110s]

[INFO] Apache Hadoop MapReduce Streaming ................. SUCCESS [7.778s]

[INFO] Apache Hadoop Distributed Copy .................... SUCCESS [12.973s]

[INFO] Apache Hadoop Archives ............................ SUCCESS [3.265s]

[INFO] Apache Hadoop Rumen ............................... SUCCESS [11.060s]

[INFO] Apache Hadoop Gridmix ............................. SUCCESS [7.412s]

[INFO] Apache Hadoop Data Join ........................... SUCCESS [4.221s]

[INFO] Apache Hadoop Extras .............................. SUCCESS [4.771s]

[INFO] Apache Hadoop Pipes ............................... SUCCESS [0.032s]

[INFO] Apache Hadoop OpenStack support ................... SUCCESS [8.030s]

[INFO] Apache Hadoop Client .............................. SUCCESS [7.730s]

[INFO] Apache Hadoop Mini-Cluster ........................ SUCCESS [0.158s]

[INFO] Apache Hadoop Scheduler Load Simulator ............ SUCCESS [7.485s]

[INFO] Apache Hadoop Tools Dist .......................... SUCCESS [6.912s]

[INFO] Apache Hadoop Tools ............................... SUCCESS [0.029s]

[INFO] Apache Hadoop Distribution ........................ SUCCESS [40.425s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 21:57.892s

[INFO] Finished at: Mon Apr 21 14:33:22 CST 2014

[INFO] Final Memory: 88M/243M

[INFO] ------------------------------------------------------------------------
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ コンパイル エラー: 識別子が宣言されていません。解決方法は? C++ コンパイル エラー: 識別子が宣言されていません。解決方法は? Aug 22, 2023 pm 03:34 PM

C++ でプログラミングする場合、宣言されていない識別子の問題がよく発生します。これは通常、未定義の変数、関数、またはクラスが使用されている場合に発生し、コンパイラーがこれらの識別子を認識できず、コンパイル エラーが発生します。この記事では、未宣言の識別子の問題の一般的な原因とその解決方法について説明します。一般的な原因 未宣言の識別子の問題は通常、次の理由から発生します。 変数、関数、またはクラスが正しく宣言されていない: 変数、関数、またはクラスは使用する前に宣言する必要があります。変数が宣言または関数されていない場合

なぜ Linux はソース コードをコンパイルする必要があるのでしょうか? なぜ Linux はソース コードをコンパイルする必要があるのでしょうか? Mar 17, 2023 am 10:21 AM

理由: 1. Linux には多くのバージョンがありますが、各バージョンでは使用するソフトウェアまたはカーネルのバージョンが異なり、バイナリ パッケージが依存する環境によっては正常に実行できない可能性があるため、ほとんどのソフトウェアはコンパイルとインストール用のソース コードを直接提供します。 2.さまざまなニーズに合わせてカスタマイズが簡単です。 3. 運用保守や開発者の保守に便利 ソースコードはバイナリでパッケージ化することも可能ですが、パッケージ化には保守などのコストがかかるため、ソースコードであればソフトウェアメーカーが直接保守します。

Java のコンパイルおよび逆コンパイル手法 Java のコンパイルおよび逆コンパイル手法 Jun 09, 2023 am 09:43 AM

Java は、さまざまな種類のソフトウェアの開発に広く使用されている非常に人気のあるプログラミング言語です。 Java 開発では、コンパイルと逆コンパイルのテクノロジは非常に重要なリンクです。コンパイル テクノロジは Java コードを実行可能ファイルに変換するために使用されますが、逆コンパイル テクノロジを使用すると、実行可能ファイルを Java コードに変換し直すことができます。この記事では、Java のコンパイルと逆コンパイルのテクニックを紹介します。 1. コンパイル技術 コンパイルとは、高級言語 (Java など) のコードを機械語に変換するプロセスです。 Javaで

Go プログラムのコンパイルに時間がかかるのはなぜですか? Go プログラムのコンパイルに時間がかかるのはなぜですか? Jun 09, 2023 pm 06:00 PM

近年、Go 言語を選択する開発者がますます増えています。ただし、他のプログラミング言語と比較すると、Go 言語のコンパイル速度は十分に速くありません。多くの開発者は、Go プログラムをコンパイルするときに次の問題に遭遇します。なぜ Go プログラムのコンパイルに時間がかかるのですか?この記事では、この問題をいくつかの側面から検討します。 Go 言語のコンパイラ アーキテクチャ Go 言語のコンパイラ アーキテクチャは、フロントエンド、中間層、バックエンドの 3 段階の設計を採用しています。フロントエンドはソース コードを Go 言語の中間コードに変換する責任を負い、中間層は

C++ コンパイル エラー: 関数のパラメーター リストが長すぎます。解決するにはどうすればよいですか? C++ コンパイル エラー: 関数のパラメーター リストが長すぎます。解決するにはどうすればよいですか? Aug 21, 2023 pm 11:19 PM

C++ コンパイル エラー: 関数のパラメーター リストが長すぎます。解決するにはどうすればよいですか? C++ でプログラムを作成する場合、関数パラメータのリストが長すぎるというコンパイル エラーが発生することがあります。 C++ 初心者にとって、これは頭の痛い問題かもしれません。次に、この問題の原因と解決策について説明します。まず、C++ 関数パラメータの基本的なルールを見てみましょう。 C++ では、関数パラメータは関数名と開き括弧の間で宣言する必要があります。関数パラメータを渡すとき、関数に何を行うかを指示します。これらのパラメータは任意のものにすることができます

ソフトウェアソースコード保護におけるPythonの応用実践 ソフトウェアソースコード保護におけるPythonの応用実践 Jun 29, 2023 am 11:20 AM

Python 言語は高級プログラミング言語として、学習が容易で読み書きも容易であり、ソフトウェア開発の分野で広く使用されています。ただし、Python のオープン ソースの性質により、ソース コードには他の人が簡単にアクセスできるため、ソフトウェアのソース コードの保護にいくつかの課題が生じます。したがって、実際のアプリケーションでは、Python ソース コードを保護し、そのセキュリティを確保するために何らかの方法を講じる必要があることがよくあります。ソフトウェア ソース コードの保護では、Python のさまざまなアプリケーション プラクティスから選択できます。以下は一般的なものです

PHPコードのソースコードを解釈・実行せずにブラウザに表示するにはどうすればよいでしょうか? PHPコードのソースコードを解釈・実行せずにブラウザに表示するにはどうすればよいでしょうか? Mar 11, 2024 am 10:54 AM

PHPコードのソースコードを解釈・実行せずにブラウザ上に表示するにはどうすればよいでしょうか? PHP は、動的 Web ページの開発に一般的に使用されるサーバー側スクリプト言語です。サーバー上で PHP ファイルが要求されると、サーバーはそのファイル内の PHP コードを解釈して実行し、最終的な HTML コンテンツを表示のためにブラウザーに送信します。ただし、PHP ファイルのソース コードを実行するのではなく、ブラウザーに直接表示したい場合があります。この記事では、PHPコードのソースコードを解釈・実行せずにブラウザ上に表示する方法を紹介します。 PHPでは、次のように使用できます

Go言語はコンパイルできますか? Go言語はコンパイルできますか? Dec 09, 2022 pm 06:20 PM

go言語はコンパイル可能です。 Go 言語はコンパイル済み静的言語であり、実行するにはコンパイルが必要なプログラミング言語です。 Go 言語プログラムをコンパイルするには 2 つのコマンドがあります: 1. 「go build」コマンド、Go 言語プログラム コードをバイナリ実行可能ファイルにコンパイルできますが、バイナリ ファイルは手動で実行する必要があります。2. 「go run」コマンド、 Go 言語プログラムはコンパイル直後に実行され、コンパイル中に一時ファイルは生成されますが、実行ファイルは生成されません。

See all articles