Ubuntu 14.04 (32位)上搭建Hadoop 2.5.1单机和伪分布式环境


引言

一直用的Ubuntu 32位系统(准备下次用Fedora,Ubuntu越来越不适合学习了),今天准备学习一下Hadoop,结果下载Apache官网上发布的最新的封装好的2.5.1版,配置完了根本启动不起来,查看错误日志发现是native库的版本和系统不一致,使用file命令可以发现封装版的native库文件全是64位的:

Ubuntu 14.04 (32位)上搭建Hadoop 2.5.1单机和伪分布式环境

原来官网发布的版本开始用64位环境编译了(貌似之前是32位环境编译)。没办法,只好自己下载源码编译了。

毫无意外的,编译时各种错误简直停不下来,强忍着一个个耐心解决了,配置的时候又由于自2.3开始带来的框架的质变,很多配置都不一样,网上教程真是看花了眼。。。不过最后还是强行配置好,终于跑起来了。系统地记下来,避免后来者绕弯路。

主要参考了2篇文章(其实就是2篇文章的整合):

CentOS 6.5源码编译安装Hadoop2.5.1

Hadoop(2.5.1)伪分布式环境CentOS(6.5 64位)配置 

下面关于Hadoop的文章您也可能喜欢,不妨看看:

Ubuntu14.04下Hadoop2.4.1单机/伪分布式安装配置教程 

CentOS安装和配置Hadoop2.2.0 

Ubuntu 13.04上搭建Hadoop环境

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Ubuntu下Hadoop环境的配置

单机版搭建Hadoop环境图文教程详解

环境

Ubuntu 14.04 (32 bit) 下载:http://www.ubuntu.com/download/desktop 

[建议使用64位系统,最好是其他Linux发行版] 

JDK 7u71

[一定要使用JDK7,不要用最新的JDK8,否则编译会出错,系统自带的OpenJDK也别用,注意配置环境变量,使默认Java环境为JDK7,一定要用“java -version”命令确认一下!] Ant 1.9.4

[Ubuntu官方源的Ant是1.9.3版,也能用,不想手动配置环境就“apt-get install ant”也行] Maven 3.2.3

[使用官方最新的3.2.3版就行,不要用2,不要apt-get安装,Ubuntu官方源的当前版本可能太旧,可能导致编译失败] FindBugs 3.0.0

[就用最新的3.0.0版,Ubuntu官方源的当前版是2.0版,太旧,会导致编译失败] Protobuf 2.5

[这个要注意:官方最新的是2.6版,但是hadoop 2.5.1就要求Protobuf是2.5版,所以务必使用链接提供的2.5版,否则编译会失败] Hadoop 2.5.1 src

[32位系统的就老老实实源码编译吧,别下到那个编译完成的版本了]

注:以上工具版本最好保持一致,使用其他版本可能导致编译失败,当然可以随便尝试,能编译成功就行,上述工具正确安装配置后一般能保证编译成功。

编译环境

先把编译环境配置起来。依次安装并配置JDK 7u71, Ant 1.9.4, Maven 3.2.3, Findbugs 3.0.0 和 Protobuf 2.5就行了:

JDK 7u71:

tar -zxvf  jdk-7u71-linux-i586.tar.gz
sudo cp -r jdk1.7.0_71 /usr/lib/jvm/

#配置环境变量:
export JAVA_HOME=/usr/lib/jvm//jdk1.7.0_71
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre//bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH

#注意:

#1、JAVA路径要在原本的PATH之前,否则java命令默认会软连接到自带的OpenJDK上。最好“java -version”确认一下。

#2、/etc/profile , .profile 或者.bashrc(.zshrc) 中配置都行,但必须source之后才能生效。.bashrc 或.zshrc的话source一次就行了,/etc/profile 或 .profile则需要每次启动终端时都source一次才能生效,直到下次开机。不同配置文件的加载机制不同,不多说。

#3、下面工具的配置同理。

Ant 1.9.4:
tar zxvf apache-ant-1.9.4-bin.tar.gz

sudo cp -r apache-ant-1.9.4 /usr/share/

#配置环境变量:export ANT_HOME=/usr/share/apache-ant-1.9.4 export PATH=$PATH:$ANT_HOME/bin

Maven 3.2.3:

tar -zxvf apache-maven-3.2.3-bin.tar.gz 
sudo cp -r apache-maven-3.2.3 /usr/share/

#配置环境变量:

 export M2_HOME=/usr/share/apache-maven-3.2.3  

export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH=$PATH:$M2_HOME/bin

FindBugs 3.0.0:

tar zxvf findbugs-3.0.0.tar.gz 
udo cp -r findbugs-3.0.0 /usr/share/

#配置环境变量:
export FINDBUGS_HOME=/usr/share/findbugs-3.0.0 
export PATH=$PATH:$FINDBUGS_HOME/bin

Protobuf 2.5.0:

tar zxvf protobuf-2.5.0.tar.gz

cd protobuf-2.5.0 
./configure --prefix=/usr/share 
make

sudo make install

我把工具都安装在/usr/share目录下,Ubuntu系统默认会搜寻该目录下的库文件,无需其他配置就行了。但是如果工具被安装在了/usr/local目录下,Ubuntu是不会自动搜索该目录的库文件的,此时需要配置开发库环境变量:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib

更多详情见请继续阅读下一页的精彩内容

  • 1
  • 2
  • 3
  • 下一页

相关内容