hadoop2.6.0 在64位CentOS 6.4系统上的编译
直接使用官网上下载的hadoop2.6.0在运行时候经常都会遇到WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable警告
这是因为hadoop本地库和系统不兼容导致,这个时候我们就需要手动在系统上编译hadoop了
所需包:
jdk-6u29-linux-x64.bin
下载地址:http://download.csdn.net/detail/tonylllz/9385886
apache-ant-1.9.6-bin.tar.gz
下载地址:http://download.csdn.net/detail/tonylllz/9385789
apache-maven-3.2.5-bin.tar.gz
下载地址:http://download.csdn.net/detail/tonylllz/9385793
findbugs-3.0.1.tar.gz
下载地址:http://download.csdn.net/detail/tonylllz/9385813
hadoop-2.6.0-src.tar.gz
下载地址:http://download.csdn.net/detail/tonylllz/9385803
protobuf-2.5.0.tar.gz
下载地址:http://download.csdn.net/detail/tonylllz/9385811
这里需要注意:
①因为笔者的linux系统是64位的所以需要的jdk也必须是64位的,否则在编译过程会一直去寻找32位的各个插件进行运行,进而导致错误
②protobuf必须是2.5.0版本的
好了,下面我们开始安装、编译吧~
①jdk安装:
./jdk-6u29-linux-x64.bin mv ./$jdk_bin_dir /usr/local/jdk ln -s /usr/local/jdk/bin/java /usr/bin/java ln -s /usr/local/jdk/bin/jps /usr/bin/jps vim /etc/profile 添加 export JAVA_HOME=/usr/local/jdk export PATH=$PATH:$JAVA_HOME/bin: 保存退出/etc/profile,并执行 source /etc/profile
执行java -version 若出现一下内容则表示jdk安装成功
②安装protobuf
因为protobuf的安装需要用到c++编译,所以这里需要安装gcc 等工具 yum -y install gcc+ gcc-c++ yum -y install make tar zxvf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=/usr/local/protobuf make make check make install vim /etc/profile 添加 export PATH=$PATH:/usr/local/protobuf/bin/ export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/ 保存退出/etc/profile,并执行 source /etc/profile 配置动态链接库路径 vim /etc/ld.so.conf 插入: /usr/local/protobuf/lib 执行 protoc --version 出现以下内容则表示安装成功 libprotoc 2.5.0
③安装ant
tar zxvf apache-ant-1.9.6-bin.tar.gz vim /etc/profile 添加 export ANT_HOME=/home/hadoop/apache-ant-1.9.6 export PATH=$PATH:$ANT_HOME/bin 保存退出/etc/profile,并执行 source /etc/profile
④安装maven
tar zxvf apache-maven-3.2.5-bin.tar.gz vim /etc/profile 添加 export MAVEN_HOME=/home/hadoop/apache-maven-3.2.5 export PATH=$PATH:$MAVEN_HOME/bin 保存退出/etc/profile,并执行 source /etc/profile
⑤安装findbugs
tar zxvf findbugs-3.0.1.tar.gz vim /etc/profile 添加 export FINDBUGS_HOME=/home/hadoop/findbugs-3.0.1 export PATH=$PATH:$FINDBUGS_HOME/bin 保存退出/etc/profile,并执行 source /etc/profile
⑤开始编译
在编译hadoop过程会需要用到cmake,automake,libtool,zlib,openssl 所以这里我们也先安装下,可以直接用linux的yum安装yum -y install cmake
yum -y install automake
yum -y install libtool
yum -y install zlib
yum -y install zlib-devel
yum -y install openssl
yum -y install openssl-devel
查看PATH系统变量至少包括下面内容:
tar zxvf hadoop-2.6.0-src.tar.gz cd hadoop-2.6.0-src mvn package -Pdist,native -DskipTests -Dtar
如果是第一次编译所需的时间会比较久,因为需要去远程仓库将要用的包一个个下载下来,若有现车的仓库,可以直接上传到linux的本地库,这样会加快编译的速度。
编译成功后显示
编译成功后的包在 hadoop-2.6.0-src/hadoop-dist/target下
补充说明下,编译过程难免会遇到问题,本篇文件已经将遇到的问题所需的包都在编译前提出,并安装好了,但大家的系统环境难免和笔者有所不同。这里举例说明下在遇到编译错误的时候该如何去解决
解决方法:
yum -y install zlib
yum -y install zlib-devel