当然,你首先得有一份 Hadoop-2.6.4-src 的源文件。使用 tar -zxvf
一、准备的软件环境
需要安装的软件很多,根据 BUILDING.txt 的说明有:
* Unix System
* JDK 1.6+
* 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 )
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
其中,JDK 使用1.6和1.7均可,但是不要使用1.8,在 PATH 中除了添加
JAVAHOME/bin外,还得添加
JAVA_HOME/lib。
其次,还得安装 apache-ant,现在的版本是1.10.1,在profile加入 PATH 中。
二、安装软件的时候,还得用到 brew 命令,没有的需要安装 Homebrew 软件
brew install zlib
brew install openssl
brew install autoconf automake libtool
brew install ncurses
brew install gcc
还得安装一个 wget 这样更方便
brew install wget
三、在 OSX 中,还得设置
sudomkdir
JAVA_HOME/Classes
sudoln−s
JAVA_HOME/lib/tools.jar $JAVA_HOME/Classes/classes.jar
四、开始编译。
编译必须在 hadoop-2.6.4-src 目录下进行。
mvnpackage−Pdist,native,docs−DskipTests−Dtar其中,可以不要docs,命令为:
mvn package -Pdist,native, -DskipTests -Dtar
如果失败了,最好使用
$ man clean package -Pdist,native, -DskipTests -Dtar
时间很长,最后会形成一个包文件即可,在 dist 目录下有 native 文件,这个可以覆盖从网络上下载已经安装的 native 目录,就不用重新安装 hadoop 了。
五、下面附加上所有的配置
export LD_LIBRARY_PATH=
LDLIBRARYPATH:/Users/wangxinnian/protobuf−2.5.0/lib/exportLIBRARYPATH=
LIBRARY_PATH:/Users/wangxinnian/protobuf-2.5.0/lib/
export PATH=
PATH:/Users/wangxinnian/protobuf−2.5.0/bin/exportCINCLUDEPATH=
C_INCLUDE_PATH:/Users/wangxinnian/protobuf-2.5.0/include/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/Users/wangxinnian/protobuf-2.5.0/include/
export PKG_CONFIG_PATH=/Users/wangxinnian/protobuf-2.5.0/lib/pkgconfig/
export ANT_HOME=/users/wangxinnian/apache-ant-1.9.0
export PATH=
ANTHOME/bin:
ANT_HOME/lib:$PATH
MAVEN_HOME=/Users/wangxinnian/apache-maven-3.5.0
export MAVEN_HOME
export PATH=
MAVENHOME/bin:
HOME/findbugs-3.0.1/bin:$PATH
export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2l
export OPENSSL_INCLUDE_DIR=
OPENSSLROOTDIR/includeexportPATH=
OPENSSL_INCLDUE_DIR:
OPENSSLROOTDIR/bin:
PATH
六、注意
1、在 openssl 中,因为系统/usr/bin 中自带,不能软连接,所以必须删除,但是MAC OS/X 有系统保护,必须解除,解除的方式
.重启电脑开后按住 Command-R 进入恢复分区. 然后在 实用工具 栏找到 终端启动运行.
输入:csrutil disable; reboot
重启后删除你/usr/bin 中的openssl 和 gcc,删除文件一定要小心哦,特别不能删除/usr/bin
然后,在reboot 后,按 Command-R 进入恢复分区,输入:csrutil enable; reboot
2、另外,在编译 Hadoop 中,可能会在 pipes 出错,openssl 一定要有系统变量
OPENSSLROOTDIR和
OPENSSL_ROOT_DIR,注意不要使用高版本的1.1。