编译Hadoop

Apache Hadoop 生态圈软件下载地址:http://archive.apache.org/dist/hadoop/
hadoop下载地址 http://archive.apache.org/dist/hadoop/common

安装环境 虚拟机中的 CentOS 64位

需要安装软件:

jdk: jdk-7u45-linux-x64.rpm

hadoop:hadoop-2.7.2-src.tar.gz

maven:apache-maven-3.0.5-bin.tar.gz

protobuf:protobuf-2.5.0.tar.gz

在hadoop目录下有个BUILDING.txt文件,编译源码需要准备的软件,及编译方法进行了说明,可参考使用

Requirements:

* Unix System
* JDK 1.7+
* Maven 3.0 or later
* Findbugs 1.3.9 (if running findbugs)
* ProtocolBuffer 2.5.0
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
* Zlib devel (if compiling native code)
* openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance )
* Jansson C XML parsing library ( if compiling libwebhdfs )
* Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs )
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)

1.下载Hadoop

wget  http://apache.opencas.org/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz

tar -zxvf  hadoop-2.7.2-src.tar.gz

2.安装JDK

sudo yum install jdk-7u45-linux-x64.rpm

查看jdk安装位置:

which java

/usr/java/jdk1.7.0_45/bin/java

添加jdk到环境变量(~/.bash_profile):

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

export PATH=.:$JAVA_HOME/bin:$PATH

验证:

java -version

java version "1.7.0_45"

Java(TM) SE Runtime Environment (build 1.7.0_45-b18)

Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

3、安装maven

wgethttp://apache.fayea.com/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz

tar -xzvf apache-maven-3.0.5-bin.tar.gz

添加maven到环境变量(~/.bash_profile):

export MAVEN_HOME=/home/hadoop/app/apache-maven-3.0.5

export PATH=.:$MAVEN_HOME/bin:$PATH

验证:

mvn -version

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 05:51:28-0800)

Maven home: /home/hadoop/app/apache-maven-3.0.5

Java version: 1.7.0_45, vendor: Oracle Corporation

Java home: /usr/java/jdk1.7.0_45/jre

Default locale: en_US, platform encoding: UTF-8

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

如果设置代理,需要修改maven配置文件。

<proxy>

<id>optional</id>

<active>true</active>

<protocol>http</protocol>

<host>x.x.x.x</host>

<port>8080</port>

</proxy>

下载失败可以换镜像

<mirror>

<id>CN</id>

<name>OSChina Central</name>

<url>http://maven.oschina.net/content/groups/public/</url>

<mirrorOf>central</mirrorOf>

</mirror>

4、安装protobuf

protobuf的官方地址貌似上不了,自行下载protobuf安装包;为了编译安装protobuf,需要先gcc/gcc-c++/make

sudo apt-get install gcc

sudo apt-get install c++

sudo apt-get install cmake

sudo apt-get install gcc-c++

tar -zvxf protobuf-2.5.0.tar.gz

cd protobuf-2.5.0

./configure --prefix=/usr/local/protoc/

sudo make

sudo make install

添加protobuf到环境变量(~/.bash_profile):

export PATH=.:/usr/local/protoc/bin:$PATH

验证:

protoc --version

libprotoc 2.5.0

5、安装其他依赖

sudo yum install cmake

sudo yum install openssl-devel

sudo yum install ncurses-devel

6、编译hadoop源代码

cd ~/app/hadoop-2.7.2-src

mvn package -DskipTests -Pdist,native

编译后的代码在hadoop-2.7.2-src/hadoop-dist/target/hadoop-2.7.2下

问题:

一、编译过程中下载jar失败。

java.net.UnknownHostException: archive.apache.org

解决方式:

1.手动下载放到如下目录:

hadoop-common-project\hadoop-kms\downloads

hadoop-hdfs-project\hadoop-hdfs-httpfs\downloads

2.删除配置文件中的下载步骤:

hadoop-common-project\hadoop-kms\target\antrun\build-main.xml

<mkdir dir="downloads"/>

<get dest="downloads/apache-tomcat-6.0.41.tar.gz" skipexisting="true" verbose="true" src="http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.tar.gz"/>

二、Maven编译出现“java.lang.OutOfMemoryError: Java heap space”

解决方式:

.profile 中添加

export MAVEN_OPTS=‘-Xms256m -Xmx1024m‘

三、编译出现 分配内存空间失败

扩大虚拟机内存

四、CMake Error     Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the

sudo apt-get install libssl-dev

时间: 2024-12-22 16:30:20

编译Hadoop的相关文章

编译Hadoop源码

背景: 在阅读hadoop源代码过程中会发现部分类或者函数无法找到,这是由于Hadoop2.0使用了Protocol Buffers定义了RPC协议, 而这些Protocol Buffers文件在Maven编译源代码才会生成对应的java类,因此若其他类在源代码中引用这些类则暂时无法找到. 解决办法就是先对hadoop源码进行编译,再导入eclipse工程. 一.基础软件: 软件 下载地址 推荐版本 JDK http://www.oracle.com/technetwork/java/javas

自己动手一步一步安装hadoop(含编译hadoop的native本地包)

最近项目需要用到hadoop,边学习边应用,第一步无疑是安装hadoop,我安装的是hadoop-2.4.1,下面是详细步骤,做备忘以后查看 一.下载依赖软件 1.java hadoop官网说明只支持java 6和7 ,下载最新的java7 http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz 2.maven 从maven官网下载http://maven.apache.org/download

编译hadoop版的hello,world

cd ~/src mkdir classes javac -classpath ~/hadoop-0.20.2/hadoop-0.20.2-core.jar WordCount.java -d classes jar -cvf WordCount.jar -C classes/ . hadoop jar WordCount.jar com.codestyle.hadoop.WordCount input output hadoop fs -ls output hadoop fs -cat out

CentOS 6.4 64位 源码编译hadoop 2.2.0

CentOS 6.4 64位 源码编译hadoop 2.2.0 搭建环境:Centos 6.4 64bit 1.安装JDK 参考这里2.安装mavenmaven官方下载地址,可以选择源码编码安装,这里就直接下载编译好的wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip解压文件后,同样在/etc/profie里配置环境变量vim /etc/profieexport

mac OS X Yosemite 上编译hadoop 2.6/2.7及TEZ 0.5.2/0.7 注意事项

1.jdk 1.7问题 hadoop 2.7.0必须要求jdk 1.7.0,而oracle官网已经声明,jdk 1.7 以后不准备再提供更新了,所以趁现在还能下载,赶紧去down一个mac版吧 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 应该选择mac ox 64位的版本 http://download.oracle.com/otn-pub/java/jdk/7u79-b1

64位centos 下编译 hadoop 2.6.0 源码

64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新的稳定版是2.6.0)地址  http://mirrors.hust.edu.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz b) 下载apache-ant (centos自带的ant版本太低,编译过程中会报错)地址: http://mi

64位CentOS上编译 Hadoop 2.2.0

1. 下载Hadoop 2.2.0 源码包,并解压 $ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz $ tar zxf hadoop-2.2.0-src.tar.gz 2. 安装下面的软件 $ sudo yum install cmake lzo-devel zlib-devel gcc autoconf automake libtool ncurses-dev

64位Ubuntu 编译 hadoop源码

本人下载了最新版的ubuntu64(14.04)位桌面版系统,在安装hadoop2.6.0时,由于官方的hadoop是在32位机子上编译的,故需下载hadoop源码进行编译. 准备:hadoop-2.6.0-src jdk1.7.0_75(由于最新版的jdk是1.8.0_31版本的,而我在用这个版本编译hadoop时出现了问题,后来发现1.8.0是在hadoop出来之后出来的,所以可能有些不支持,故建议用1.7.0版本的) 1.安装JDK 安装jdk的方式大家可以网上搜一下,或者通过这个链接ht

CentOS上编译hadoop 2.7

官网下载的 hadoop执行运行报警告: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableput: `./in': No such file or directory 主要是lib下的native-hadoop 是32位的,所以这里我们自己在64位的系统上编译hadoop 环境准备: 1