목차
2. 安装依赖
데이터 베이스 MySQL 튜토리얼 hadoop2.4.0源码编译

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 Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

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. 운영 및 유지관리가 편리하고, 개발자 유지관리가 편리합니다. 소스코드를 바이너리로 패키징할 수 있지만, 이 소프트웨어를 패키징하려면 유지관리를 포함한 비용이 많이 드는 추가 작업이 필요하므로 소스코드인 경우 소프트웨어 제조업체가 직접 유지관리합니다. .

Go 프로그램을 컴파일하는 데 시간이 더 오래 걸리는 이유는 무엇입니까? Go 프로그램을 컴파일하는 데 시간이 더 오래 걸리는 이유는 무엇입니까? Jun 09, 2023 pm 06:00 PM

최근 몇 년 동안 Go 언어는 점점 더 많은 개발자의 선택이 되었습니다. 그러나 다른 프로그래밍 언어에 비해 Go 언어의 컴파일 속도는 충분히 빠르지 않습니다. 많은 개발자들이 Go 프로그램을 컴파일할 때 다음과 같은 문제에 직면하게 됩니다. Go 프로그램을 컴파일하는 데 시간이 더 오래 걸리는 이유는 무엇입니까? 이 기사에서는 이 문제를 여러 측면에서 살펴볼 것입니다. Go 언어의 컴파일러 아키텍처 Go 언어의 컴파일러 아키텍처는 프론트엔드, 미들 레이어, 백엔드의 3단계 설계를 채택합니다. 프론트 엔드는 소스 코드를 Go 언어의 중간 코드로 변환하는 역할을 담당하며 중간 계층은

Java의 컴파일 및 디컴파일 기술 Java의 컴파일 및 디컴파일 기술 Jun 09, 2023 am 09:43 AM

Java는 다양한 유형의 소프트웨어를 개발하는 데 널리 사용되는 매우 인기 있는 프로그래밍 언어입니다. Java 개발에서 컴파일과 디컴파일 기술은 매우 중요한 연결고리입니다. 컴파일 기술은 Java 코드를 실행 파일로 변환하는 데 사용되는 반면, 디컴파일 기술은 실행 파일을 다시 Java 코드로 변환하는 데 사용됩니다. 이 기사에서는 Java의 컴파일 및 디컴파일 기술을 소개합니다. 1. 컴파일 기술 컴파일은 자바와 같은 고급 언어 코드를 기계어로 변환하는 과정이다. 자바에서

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에서 선택할 수 있는 다양한 응용 사례가 있습니다. 다음은 몇 가지 일반적인 사항입니다.

Go 언어를 컴파일할 수 있나요? Go 언어를 컴파일할 수 있나요? Dec 09, 2022 pm 06:20 PM

Go 언어를 컴파일할 수 있습니다. Go 언어는 컴파일된 정적 ​​언어로, 실행하려면 컴파일이 필요한 프로그래밍 언어입니다. Go 언어 프로그램을 컴파일하는 데는 두 가지 명령이 있습니다. 1. Go 언어 프로그램 코드를 바이너리 실행 파일로 컴파일할 수 있지만 바이너리 파일을 수동으로 실행해야 하는 "go build" 명령 2. "go run" 명령 Go 언어 프로그램은 컴파일 후 바로 실행됩니다. 컴파일 과정에서 임시 파일이 생성되지만 실행 파일은 생성되지 않습니다.

PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? Mar 11, 2024 am 10:54 AM

PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법은 무엇입니까? PHP는 동적 웹 페이지를 개발하는 데 일반적으로 사용되는 서버 측 스크립팅 언어입니다. 서버에서 PHP 파일이 요청되면 서버는 그 안에 있는 PHP 코드를 해석하고 실행한 후 최종 HTML 콘텐츠를 브라우저에 보내 표시합니다. 그러나 때때로 PHP 파일의 소스 코드를 실행하는 대신 브라우저에 직접 표시하고 싶을 때가 있습니다. 이 기사에서는 PHP 코드의 소스 코드를 해석 및 실행하지 않고 브라우저에 표시하는 방법을 소개합니다. PHP에서는 다음을 사용할 수 있습니다.

See all articles